Hypermail can deal with attachments enclosed in MIME messages.
For more information on MIME 

   + RFC 2045, which specifies the various headers used to describe
     the structure of MIME messages.

   + RFC 2046, which defines the general structure of the MIME media
     typing system and defines an initial set of media types,

   + RFC 2047 which describes the  Message Header Extensions for 
     Non-ASCII Text

   + RFC 2048, which specifies various IANA registration procedures
     for MIME-related facilities, and

   + RFC 2049, which describes MIME conformance criteria and
     provides some illustrative examples of MIME message formats,
     acknowledgements, and the bibliography.

   + RFC 2383, which describes Communicating Presentation Information 
     in Internet Messages: The Content-Disposition Header Field.

Saving Attachments:
-------------------
  
When hypermail encounters an attachment it saves the attachment to disk 
as a separate file. The basename of the filepath specified in the message
is used as the original filename as the name of the attachment file,

             <a href="budget.doc">budget.doc</a>

This matches the name the user sent it as thus reducing the need
for someone downloading the attachment to have to rename it.

In the event that there is no file name specified in the message then
a random name is generated instead.  If the MIME type is known, it adds the 
proper extension to the file when it is saved to disk to aid a browser in 
processing the file with a helper application upon retrieval.
 
Hypermail prints a comment in the message HTML file to indicate the message 
has an attachment and what the name of the attachment file is.

           <!-- attachment="filepath1" -->
           <!-- attachment="filepath2" -->
           ...
           <!-- attachment="filepathN" -->

Besides making it much easier for removal or converter 
processes, standard incremental mailbox updates will be 
able to recognize that there are attachments and use the 
existing filenames or remove them prior to generating new 
ones. 

KNOWN BUG: At present if you have an archive that you are periodically 
           updating via a mailbox and are not overwiting the archive, 
           the bin* files are not reused but are recreated anew. This 
           leaves the previous bin* files in the archive directory and 
           orphaned.


Attachment File Modes:
----------------------

      For security reasons, *all* binary attachments should be 
      written to disk with file permissions of 444 or equivalent 
      read-only access and should *never* allowed to be executable.

      NOTE: At present the modes of the attachment file are set 
            using the value specified by the FILEMODE define in options.h 
            or the "hm_filemode" configuration file variable.

Controlling archiving of attachments
-------------------------------------

       The user can control the use of attachments by:

       1. Indicating which mime types should not be stored at all.  
          (i.e. vcard attachments) (see hm_ignore_types)

       2. Specifying a list with 'preferred' content-types when 
          receiving/decoding mixed/alternative attachments
          (see hm_prefered_types)

       3. Indicating which content-types of images that is preferred 
          to get in-lined - <img> instead of <a href>.
          (see hm_inline_types)

Config file additions: 
----------------------

   # For each type to be ignored, put an hm_ignore record for that
   # type. It is added to the list of ignored types when the config
   # file is read.
   #
   hm_ignore_types = text/x-vcard
   hm_ignore_types = application/x-msdownload

   #
   # ordered list, Do the first and if that is not present, 
   # do the next and if that is not present ...
   #
   hm_prefered_types = text/plain text/html ...

   #
   # Determine which image mime types should be inlined for
   # display in the message. <IMG SRC=..> instead of <A HREF=...>
   #
   hm_inline_types = image/gif image/jpeg ...

The readconfigs function is now able to look for more than one entry 
of certain types of variables. This can be on one line or on multiple
lines. This type of parsing is only supported for 

	hm_ignore_types
	hm_inline_types
	hm_prefered_types

NOTE: The hm_prefered_types is not fully implemented yet and defaults to
text/plain and formats it accordingly.

