TUTORIAL FOR EMIL VERSION 2.1Written by Martin Wendel, ITS, Uppsala university. Martin.Wendel@its.uu.se
Message transport is one of the major uses of the Internet today. Although the mechanisms of transport itself may vary, the format of what is being transported varies even more. Emil is a tool that gives the opportunity to bridge these format variations. Emil does not deal with how messages are sent, therefore the transport mechanisms are left out in favour of the message format in the rest of this document.
RFC822 is a common base that defines the format of an Internet Message. Unfortunately this does not mean that all Mail User Agents (MUA's) conforming to RFC822 will interoperate satisfactory. Messages may very well be incompatible while still conforming to RFC822 [RFC822]. RFC822 is just a common base and does not address compatibility of the data being sent, MIME [RFC1521]and [RFC1522] is an effort to do just that. While RFC822 defines the format of the message itself, MIME defines the format of the contents of the message (Internet messages not conforming with MIME typically has a fairly unstructured content). Until MIME is widely used these incompatibilities will remain. The intermediate cure for this is the tool Emil.
Emil acts as a filter tool and transforms messages between message formats. It can act as a manual filter or it can be used by a Mail Transfer Agent (MTA) like sendmail. It is often argued that MTA's should only alter messages when they act as gateways between heterogeneous networks. I argue that a MTA may very well transform a message when passing it between heterogeneous logical communities (or networks) of MUA's. These two arguments are really analogous.
Using Emil, heterogeneous MUA networks can act as homogenous. This works both ways; A single user can make the rest of the world act homogenous looking from his/her MUA.