updated
[exim-website.git] / intro.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3   <head>
4     <title>Introduction to exim</title>
5     <base target="body">
6   </head>
7
8   <body bgcolor="#FFFFFF" text="#00005A" link="#FF6600" alink="#FF9933" vlink="#990000">
9     <center>
10       <img src="images/eximX.png" alt="[big logo]">
11     </center>
12     <h1>Introduction to exim</h1> 
13
14     <p>Exim is a message transfer agent (<b>MTA</b>) developed at the
15     University of Cambridge for use on Unix systems connected to the
16     Internet. It is freely available under the terms of the <b>GNU
17     General Public Licence</b>. In style it is similar to <b>Smail
18     3</b>, but its facilities are more extensive, and in particular it
19     has some defences against mail bombs and unsolicited junk mail in
20     the form of options for refusing messages from particular hosts,
21     networks, or senders.</p>
22
23     <p>The major features are summarised below.  There is also an
24     overview which expands on these features.  Exim has an extensive
25     set of documentation included in the exim specification,
26     additionally there are documents on the filtering functionality
27     and other documentation is being made available on this web site.
28     <a href="exim-html-3.20/doc/html/oview.html">The full overview is also
29     available</a>.</p>
30
31     <h2>Basic Features</h2>
32     <ul>
33       <li>
34         Many configuration options can be given as expansion strings,
35         and as these can include file lookups, much of Exim's
36         operation can be made table-driven if desired.  For example,
37         it is possible to do local delivery on a machine on which the
38         users do not have accounts.
39       </li>
40       <!-- -->
41       <li>
42         Regular expressions are available in a number of configuration
43         parameters.
44       </li>
45       <!-- -->
46       <li>
47         Domain lists can include file lookups, making it possible to
48         support a large number of local domains.
49       </li>
50       <!-- -->
51       <li>
52         The maximum size of message can be specified.
53       </li>
54       <!-- -->
55       <li>
56         Exim can handle a number of independent local domains on the
57         same machine; each domain can have its own alias files,
58         etc. These are commonly called <b>virtual domains</b>.
59       </li>
60       <!-- -->
61       <li>
62         Exim contains an optional built-in mail filtering
63         facility. This enables users to set up their own mail
64         filtering in a straightforward manner without the need to run
65         an external program. There can also be a system filter file
66         that applies to all messages.
67       </li>
68       <!-- -->
69       <li>
70         Periodic warnings are automatically sent to messages' senders
71         when delivery is delayed -- the time between warnings is
72         configurable.
73       </li>
74       <!-- -->
75       <li>
76         A queue run can be manually started to deliver just a
77         particular portion of the queue, or those messages with a
78         recipient whose address contains a given string.
79       </li>
80       <!-- -->
81       <li>
82         Exim can be configured to run as root all the time, except
83         when performing local deliveries, which it always does in a
84         separate process under an appropriate uid and
85         gid. Alternatively, it can be configured to run as root only
86         when needed; in particular, it need not run as root when
87         receiving incoming messages or when sending out messages over
88         SMTP.
89       </li>
90       <!-- -->
91     </ul>
92     <h2>Incoming SMTP</h2>
93     <ul>
94       <li>
95         SMTP calls from specific machines, optionally from specific
96         idents, can be locked out, and incoming SMTP messages from
97         specific senders can also be locked out.
98       </li>
99       <!-- -->
100       <li>
101         Messages on the queue can be `frozen' and `thawed' by the
102         administrator.
103       </li>
104       <!-- -->
105     </ul>
106     <h2>Outgoing SMTP</h2>
107     <ul>
108       <li>
109         Exim can perform multiple deliveries down the same SMTP
110         channel after deliveries to a host have been delayed.
111       </li>
112       <!-- -->
113       <li>
114         Exim can be configured to do local deliveries immediately but
115         to leave remote deliveries until the message is picked up by a
116         queue-runner process. This increases the likelihood of
117         multiple messages being sent down a single SMTP connection.
118       </li>
119       <!-- -->
120       <li>
121         When copies of a message have to be delivered to more than one
122         remote host, up to a configured maximum number of remote
123         deliveries can be done in parallel.
124       </li>
125       <!-- -->
126     </ul>
127     <h2>Local Deliveries</h2>
128     <ul>
129       <li>
130         Exim stats a user's home directory before looking for a
131         `<tt>.forward</tt>' file, in order to detect the case of a
132         missing NFS mount.
133       </li>
134       <!-- -->
135       <li>
136         There is support for multiple user mailboxes controlled by
137         prefixes or suffixes on the user name, either via the
138         <i>filter</i> mechanism or through multiple
139         `<tt>.forward</tt>' files.
140       </li>
141       <!-- -->
142     </ul>
143     <h2>Monitoring and Performance Tools</h2>
144     <ul>
145       <li>
146         The Exim Monitor is an optional extra; it displays information
147         about Exim's processing in an X window, and an administrator
148         can perform a number of control actions from the window
149         interface.
150       </li>
151       <!-- -->
152       <li>
153         There are a set of tools for summarising the queue, determining
154         what each exim process is currently doing, examining the
155         deliveries hints databases, and summarising the log files into
156         a concise report on activity.
157       </li>
158       <!-- -->
159     </ul>
160     <h2>SPAM/UCE/UBE Limitation Features</h2>
161     <ul>
162       <li>
163         Senders can be blocked using a variety of methods, including
164         the ability to apply a set of username or regular expression
165         patterns to incoming mail from particular (or all) domains.
166       </li>
167       <!-- -->
168       <li>
169         All addresses can be checked for validity during the SMTP
170         transaction thus allowing the elimination of mail from
171         non-existent domains.
172       </li>
173       <!-- -->
174       <li>
175         Relaying can be tightly controlled based on sending host,
176         network or sending/recipient domains.
177       </li>
178       <!-- -->
179       <li>
180         If all else fails the system filter can be used to deal with
181         messages based on arbitrary conditions that you can program in
182         (for example block mail with a particular <tt>X-Mailer:</tt>
183         header.
184       </li>
185     </ul>
186     <h2>Limitations</h2>
187     <ul>
188       <li>
189         Exim is written in ANSI C. This should not be much of a
190         limitation these days.  However, to help with systems that
191         lack a true ANSI C library, Exim avoids making any use of the
192         value returned by the `<tt>sprintf()</tt>' function, which is
193         one of the main incompatibilities. It has its own version of
194         `<tt>strerror()</tt>' for use with <b>SunOS4</b> and any other
195         system that lacks this function, and a macro can be defined to
196         turn `<tt>memmove()</tt>' into `<tt>bcopy()</tt>' if
197         necessary.
198       </li>
199       <!-- -->
200       <li>
201           Exim uses file names that are longer than 14 characters.
202         </li>
203       <!-- -->
204       <li>
205         Exim is intended for use as an Internet mailer, and therefore
206         handles addresses in RFC 822 domain format only. It cannot
207         handle <i>bang paths</i>, though simple two-component bang
208         paths can be converted by a straightforward rewriting
209         configuration.
210       </li>
211       <!-- -->
212       <li>
213         Exim insists that every address it handles has a domain
214         attached. For incoming local messages, domainless addresses
215         are automatically qualified with a configured domain
216         value. Configuration options specify from which remote systems
217         unqualified addresses are acceptable.
218       </li>
219       <!-- -->
220       <li>
221         The only external transport currently implemented is an SMTP
222         transport over a TCP/IP network (using sockets), suitable for
223         machines on the Internet. However, a pipe transport is
224         available, and there are facilities for writing messages to
225         files in `batched SMTP' format; this can be used to send
226         messages to some other transport mechanism. Batched SMTP input
227         is also catered for.
228       </li>
229       <!-- -->
230     </ul>
231     <hr>
232     <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
233 <!-- Created: Mon Aug 25 13:21:52 BST 1997 -->
234     <h4>$Id: intro.html,v 1.1.1.1 2000/05/22 19:54:41 nigel Exp $</h4>
235   </body>
236 </html>