MML Definition
==============
The MML language is very simple. It looks a bit like an SGML
application, but it's not.
The main concept of MML is the "part". Each part can be of a
different type or use a different charset. The way to delineate a part
is with a `<#part ...>' tag. Multipart parts can be introduced with
the `<#multipart ...>' tag. Parts are ended by the `<#/part>' or
`<#/multipart>' tags. Parts started with the `<#part ...>' tags are
also closed by the next open tag.
There's also the `<#external ...>' tag. These introduce
`external/message-body' parts.
Each tag can contain zero or more parameters on the form
`parameter=value'. The values may be enclosed in quotation marks, but
that's not necessary unless the value contains white space. So
`filename=/home/user/#hello$^yes' is perfectly valid.
The following parameters have meaning in MML; parameters that have no
meaning are ignored. The MML parameter names are the same as the MIME
parameter names; the things in the parentheses say which header it will
be used in.
`type'
The MIME type of the part (`Content-Type').
`filename'
Use the contents of the file in the body of the part
(`Content-Disposition').
`charset'
The contents of the body of the part are to be encoded in the
character set speficied (`Content-Type').
`name'
Might be used to suggest a file name if the part is to be saved to
a file (`Content-Type').
`disposition'
Valid values are `inline' and `attachment' (`Content-Disposition').
`encoding'
Valid values are `7bit', `8bit', `quoted-printable' and `base64'
(`Content-Transfer-Encoding').
`description'
A description of the part (`Content-Description').
`creation-date'
RFC822 date when the part was created (`Content-Disposition').
`modification-date'
RFC822 date when the part was modified (`Content-Disposition').
`read-date'
RFC822 date when the part was read (`Content-Disposition').
`size'
The size (in octets) of the part (`Content-Disposition').
Parameters for `application/octet-stream':
`type'
Type of the part; informal--meant for human readers
(`Content-Type').
Parameters for `message/external-body':
`access-type'
A word indicating the supported access mechanism by which the file
may be obtained. Values include `ftp', `anon-ftp', `tftp',
`localfile', and `mailserver'. (`Content-Type'.)
`expiration'
The RFC822 date after which the file may no longer be fetched.
(`Content-Type'.)
`size'
The size (in octets) of the file. (`Content-Type'.)
`permission'
Valid values are `read' and `read-write' (`Content-Type').