1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
4 <title>Introduction to exim</title>
8 <body bgcolor="#FFFFFF" text="#00005A" link="#FF6600" alink="#FF9933" vlink="#990000">
10 <img src="images/exim-blue-ld.png" alt="[big logo]">
12 <h1>Introduction to exim</h1>
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>
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
31 <h2>Basic Features</h2>
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.
42 Regular expressions are available in a number of configuration
47 Domain lists can include file lookups, making it possible to
48 support a large number of local domains.
52 The maximum size of message can be specified.
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>.
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.
70 Periodic warnings are automatically sent to messages' senders
71 when delivery is delayed -- the time between warnings is
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.
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
92 <h2>Incoming SMTP</h2>
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.
101 Messages on the queue can be `frozen' and `thawed' by the
106 <h2>Outgoing SMTP</h2>
109 Exim can perform multiple deliveries down the same SMTP
110 channel after deliveries to a host have been delayed.
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.
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.
127 <h2>Local Deliveries</h2>
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
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.
143 <h2>Monitoring and Performance Tools</h2>
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
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.
160 <h2>SPAM/UCE/UBE Limitation Features</h2>
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.
169 All addresses can be checked for validity during the SMTP
170 transaction thus allowing the elimination of mail from
171 non-existent domains.
175 Relaying can be tightly controlled based on sending host,
176 network or sending/recipient domains.
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>
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
201 Exim uses file names that are longer than 14 characters.
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
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.
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
232 <address><a href="mailto:Postmaster@exim.org">Nigel Metheringham</a></address>
233 <!-- Created: Mon Aug 25 13:21:52 BST 1997 -->