1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
<HEAD>
<TITLE>EMIL version 2 TUTORIAL</TITLE>
</HEAD>
<BODY>
<H1>TUTORIAL FOR EMIL VERSION 2.1
</H1>
<EM>Written by Martin Wendel, ITS, Uppsala university.
Martin.Wendel@its.uu.se
</EM>
<HR>
<A HREF=control.html><IMG ALIGN=MIDDLE SRC=arrow_right3.gif></A><A HREF=main.html><IMG ALIGN=MIDDLE SRC=arrow_up2.gif></A><A HREF=comparison.html><IMG ALIGN=MIDDLE SRC=arrow_left3.gif></A>
<H2>USING EMIL</H2>
<P>
There are several ways of using Emil. You may choose to use Emil as an
independant program or you may choose to integrate Emil into your message
delivery system. Using the capabilities specified below there is no
restriction on how you can use Emil.
<P>
Emil can take its input in two ways: You can pipe a message to the stdin of
Emil or you can place the message in a file and tell Emil to use that file
for input.
<P>
Emil can produce its output in three ways: To a file, to the stdout or to
an SMTP stream (Emil includes an SMTP client and can send the message to a
remote host using SMTP).
<P>
Emil can also fork off another program and send the output to the stdin of
that process.
<P>
If you intend to use Emil as an indepentant program feel free to experiment
on how you can use Emil. If, on the other hand you want to integrate Emil
into your message delivery systems there are a few things that need
considering. There are three main approaches: Input filtering, output
filtering and intermediate filtering.
<H3>Input filtering</H3>
<P>
This is applying Emil before the MTA receives the message and making Emil
call the MTA after conversion is completed. The one big disadvantage of
this method is that there is no way to apply Emil on a network input. This
is because Emil has no network daemon facilities. It is however possible to
use Emil as an input filter to sendmail on locally sent messages. This can
be done by installing Emil on the path of the sendmail program and move
sendmail to another place (sendmail must of course still be up and running
as a daemon). Emil can then be made to call sendmail and send the converted
messages to the stdin of sendmail. This is the general, and ugly, method of
using Emil as an input filter. Another way is restrict usage to specific
programs that need to have their messages converted. This, of course, means
changing the programs to call Emil instead of sendmail. This can be fairly
useful, for instance in a news-to-mail program that gateways a news group
to a mailling list. (The opposite is also possible, using Emil in a
mail-to-news program.)
<H3>Output filtering</H3>
<P>
This is letting the MTA apply Emil on it's output and is perhaps the most
useful method of using Emil. The most powerful way to implement output
filtering in sendmail is to change the mailer definitions in sendmail.cf.
Emil includes an SMTP client and can be made to fork off other programs and
redirect its output to them. Therefore it is possible to replace sendmail's
TCP mailer and the external mailers like the local mailer, uucp mailer etc
with mailers calling Emil. This is a total solution excluding only those
internal mailers that are not SMTP based. It is also possible to implement
conversion in a more restricted way using output filtering
<H3>Intermediate filtering</H3>
<P>
The only way to implement intermediate filtering using sendmail is to
combine output and input filtering in a loop back fasion letting Emil
receive the message from sendmail and redirect it back to sendmail again.
This is the method suggested in previous versions of Emil 2. The main
advantage is that this method is more general than any of the others. The
main disadvantages are that it is difficult to make the changes to
sendmail.cf correctly and that all message actually will be processed by
sendmail twice, spooled twice et cetera.
<p>If, on the other hand, you set up Emil to swap sender and recipient
address before calling sendmail, you have constructed a mail conversion
robot that will convert messages sent to it and return the result back
to the sender. This can be a solution for sites that wants ocasional
conversion; instead of teaching users how to use Emil you set up a server
that handles the configuration syntax.
<HR>
<A HREF=control.html><IMG ALIGN=MIDDLE SRC=arrow_right3.gif></A><A HREF=main.html><IMG ALIGN=MIDDLE SRC=arrow_up2.gif></A><A HREF=comparison.html><IMG ALIGN=MIDDLE SRC=arrow_left3.gif></A>
<hr size="4" noshade>
<ADDRESS>
<table WIDTH="95%">
<td>
March 1996<p>
<B>ITS Uppsala university</B><BR>
Box 887<BR>
751 08 Uppsala<BR>
SWEDEN<P>
</td>
<td ALIGN="right" VALIGN="middle">
<a href="mailto:Martin.Wendel@its.uu.se">Martin Wendel</a>
</td>
<td ALIGN="left" VALIGN="middle">
<a href="mailto:Martin.Wendel@its.uu.se">
<IMG border="0" SRC="binpobox.gif" ALT="E-Mail: "></a>
</td>
</table>
</ADDRESS>
</body>
</html>
|