version bump
[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/exim-blue-ld.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>$Cambridge$</h4>
235   </body>
236 </html>