]> git.pld-linux.org Git - packages/exim.git/blame - exim.8
- reverting last change: removing new macros from %p{re,ost}{,un}
[packages/exim.git] / exim.8
CommitLineData
6a7ed0b9 1.TH exim 8
2.SH exim
3exim \- Mail Transfer Agent
4.SH SYNOPSIS
5.B exim
6.I "[options] arguments ..."
7.br
8.B mailq
9.I "[options] arguments ..."
10.br
11.B rmail
12.I "[options] arguments ..."
13.br
14.B rsmtp
15.I "[options] arguments ..."
16.br
17.B runq
18.I "[options] arguments ..."
19.br
20.B sendmail
21.I "[options] arguments ..."
22.SH "DESCRIPTION"
23.B Exim
24is a mail transport agent (MTA) developed at the University of
25Cambridge for use on Unix systems connected to the Internet. It is
26freely available under the terms of the GNU General Public Licence. In
27style it is similar to Smail 3, but its facilities are more extensive,
28and in particular it has some defences against mail bombs and
29unsolicited junk mail, in the form of options for refusing messages
30from particular hosts, networks, or senders.
31.PP
32Exim's command line takes the standard Unix form of a sequence of
33options, each starting with a hyphen character, followed by a number
34of arguments. The options are compatible with the main options of
35Sendmail, and there are also some additional options, some of which
36are compatible with Smail 3. Certain combinations of options do not
37make sense, and provoke an error if used. The form of the arguments
38depends on which options are set.
39.PP
40If Exim is called under the name mailq, it behaves as if the option
41-bp were present before any other options. This is for compatibility
42with some systems that contain a command of that name in one of the
43standard libraries, symbolically linked to /usr/lib/sendmail.
44.PP
45If Exim is called under the name rsmtp it behaves as if the option -bS
46were present before any other options, for compatibility with
47smail. The -bS option is used for reading in a number of messages in
48batched SMTP format.
49.PP
50If Exim is called under the name rmail it behaves as if the option -i
51were present before any other options, for compatibility with
52smail. The -i option is used for reading a message that should not be
53terminated by a dot on a line by itself. The name rmail is used as an
54interface by some UUCP systems.
55.PP
56If Exim is called under the name runq it behaves as if the option -q
57were present before any other options, for compatibility with
58smail. The -q option causes a single queue-runner process to be
59started.
60.SH LIMITATIONS
61For the benefit of those reading this overview to see whether Exim is
62of interest to them, its limitations are listed first.
63.TP
64.B ANSI-C
65Exim is written in ANSI C. This should not be much of a limitation
66these days. However, to help with systems that lack a true ANSI C
67library, Exim avoids making any use of the value returned by the
68sprintf() function, which is one of the main incompatibilities. It has
69its own version of strerror() for use with SunOS4 and any other system
70that lacks this function, and a macro can be defined to turn memmove()
71into bcopy() if necessary.
72.TP
73.B Filenames
74Exim uses file names that are longer than 14 characters.
75.TP
76.B Bangpaths
77Exim is intended for use as an Internet mailer, and therefore handles
78addresses in RFC 822 domain format only. It cannot handle 'bang
79paths', though simple two-component bang paths can be converted by a
80straightforward rewriting configuration.
81.TP
82.B Domains required
83Exim insists that every address it handles has a domain attached. For
84incoming local messages, domainless addresses are automatically
85qualified with a configured domain value. Configuration options
86specify from which remote systems unqualified addresses are
87acceptable.
88.TP
89.B Transports
90The only external transport currently implemented is an SMTP transport
91over a TCP/IP network (using sockets), suitable for machines on the
92Internet. However, a pipe transport is available, and there are
93facilities for writing messages to files in 'batched SMTP' format;
94this can be used to send messages to some other transport
95mechanism. Batched SMTP input is also catered for.
96.SH FEATURES
97Exim follows the same general approach of decentralized control that
98Smail 3 does. There is no central process doing overall management of
99mail delivery. However, unlike Smail, the independent delivery
100processes share data in the form of 'hints', which makes delivery more
101efficient in some cases. The hints are kept in a number of DBM
102files. If any of these files are lost, the only effect is to change
103the pattern of delivery attempts and retries.
104.PP
105Many configuration options can be given as expansion strings, and as
106these can include file lookups, much of Exim's operation can be made
107table-driven if desired. For example, it is possible to do local
108delivery on a machine on which the users do not have accounts.
109.PP
110Regular expressions are available in a number of configuration
111parameters.
112.PP
113Domain lists can include file lookups, making it possible to support a
114large number of local domains.
115.PP
116Exim has flexible retry algorithms, applicable to mail routing as well as
117to delivery.
118.PP
119Exim contains header and envelope rewriting facilities.
120.PP
121Unqualified addresses are accepted only from specified hosts or networks.
122.PP
123Exim can perform multiple deliveries down the same SMTP channel after
124deliveries to a host have been delayed.
125.PP
126Exim can be configured to do local deliveries immediately but to leave
127remote deliveries until the message is picked up by a queue-runner
128process. This increases the likelihood of multiple messages being sent
129down a single SMTP connection.
130.PP
131When copies of a message have to be delivered to more than one remote
132host, up to a configured maximum number of remote deliveries can be
133done in parallel.
134.PP
135Exim supports optional checking of incoming return path (sender) and
136receiver addresses as they are received by SMTP.
137.PP
138SMTP calls from specific machines, optionally from specific idents,
139can be locked out, and incoming SMTP messages from specific senders
140can also be locked out.
141.PP
142It is possible to control which hosts may use the Exim host as a relay
143for onward transmission of mail; the control can be made to depend on
144the address domain.
145.PP
146Messages on the queue can be 'frozen' and 'thawed' by the
147administrator.
148.PP
149The maximum size of message can be specified. Exim can handle a
150number of independent local domains on the same machine; each domain
151can have its own alias files, etc. These are commonly called "virtual
152domains".
153.PP
154Exim stats a user's home directory before looking for a .forward file,
155in order to detect the case of a missing NFS mount.
156.PP
157Exim contains an optional built-in mail filtering facility. This
158enables users to set up their own mail filtering in a straightfoward
159manner without the need to run an external program. There can also be
160a system filter file that applies to all messages.
161.PP
162There is support for multiple user mailboxes controlled by prefixes or
163suffixes on the user name, either via the filter mechanism or through
164multiple .forward files.
165.PP
166Periodic warnings are automatically sent to messages' senders when
167delivery is delayed - the time between warnings is configurable.
168.PP
169A queue run can be manually started to deliver just a particular
170portion of the queue, or those messages with a recipient whose address
171contains a given string.
172.PP
173Exim can be configured to run as root all the time, except when
174performing local deliveries, which it always does in a separate
175process under an appropriate uid and gid. Alternatively, it can be
176configured to run as root only when needed; in particular, it need not
177run as root when receiving incoming messages or when sending out
178messages over SMTP.
179.PP
180I have tried to make the wording of delivery failure messages clearer
181and simpler, for the benefit of those less-experienced people who are
182now using email.
183.PP
184The Exim Monitor is an optional extra; it displays information about
185Exim's processing in an X window, and an administrator can perform a
186number of control actions from the window interface.
187.SH METHOD OF OPERATION
188When Exim receives a message, it writes two files in its spool
189directory. The first contains the envelope information, the current
190status of the message, and the headers, while the second contains the
191body of the message. The status of the message includes a complete
192list of recipients and a list of those that have already received the
193message. The header file gets updated during the course of delivery if
194necessary.
195.PP
196A message remains in the spool directory until it is completely
197delivered to its recipients or to an error address, or until it is
198deleted by an administrator or by the user who originally created
199it. In cases when delivery cannot proceed - for example, when a
200message can neither be delivered to its recipients nor returned to its
201sender, the message is marked 'frozen' on the spool, and no more
202deliveries are attempted. The administrator can thaw such messages
203when the problem has been corrected, and can also freeze individual
204messages by hand if necessary.
205.PP
206As delivery proceeds, Exim writes timestamped information about each
207address to a per-message log file; this includes any delivery error
208messages. This log is solely for the benefit of the administrator. All
209the information Exim itself needs for delivery is kept in the header
210spool file. The message log file is deleted with the spool files. If a
211message is delayed for more than a configured time, a warning message
212is sent to the sender. This is repeated whenever the same time elapses
213again without delivery being complete.
214.PP
215The main delivery processing elements of Exim are called directors,
216routers, and transports. Code for a number of these is provided, and
217compile-time options specify which ones are actually included in the
218binary. Directors handle addresses that include one of the local
219domains, routers handle remote addresses, and transports do actual
220deliveries.
221.SH TRUSTED AND ADMIN USERS
222Some Exim options are available only to "trusted users" and others are
223available only to "admin users".
224.PP
225A trusted user is root or the Exim user (if defined) or any user
226listed in the trusted_users configuration option, or any user, if the
227currently set group is one of those listed in the trusted_groups
228configuration option. Trusted users are permitted to use the -f option
229to specify the senders of messages that are passed to Exim through the
230local interface, and also to specify host names, host addresses,
231protocol names, and ident values. Thus they are able to insert
232messages into Exim's queue locally that have the characteristics of
233messages received from a remote host.
234.PP
235An admin user is root or the Exim user (if defined) or any user that
236is a member of the Exim group (if defined). The current group does not
237have to be the Exim group. Admin users are permitted to operate on
238messages in the queue, for example, to force delivery failures. It is
239also necessary to be an admin user in order to see the full
240information provided by the Exim monitor.
241.SH OPTIONS
242Exim's command options are as follows:
243.TP
244.B -bd
245Run Exim as a daemon, awaiting incoming SMTP connections. This option
246can be used only by an admin user. If either of the -d or -dm options
247are set, the daemon does not disconnect from the controlling
248terminal. By default, Exim listens for incoming connections on all the
249host's interfaces, but it can be restricted to specific interfaces by
250setting the local_interfaces option in the configuration file. The
251standard SMTP port is used, but this can be varied by means of the -oX
252option. Most commonly, the -bd option is combined with the -q<time>
253option, to cause periodic queue runs to happen as well.
254
255The process id of a daemon that is both listening and starting queue
256runners is written to a file called exim-daemon.pid in Exim's spool
257directory, unless the -oX option is used, in which case the file
258name is exim-daemon.<port-number>.pid. If a daemon is run with only
259one of -bd and -q<time>, then that option is added on to the end of
260the file name, allowing sites that run two separate daemons to
261distinguish them.
262
263It is possible to change the directory in which these pid files are
264written by changing the setting of PID_FILE_PATH in Local/Makefile.
265Further details are given in the comments in src/EDITME.
266
267The SIGHUP signal can be used to cause the daemon to re-exec itself.
268This should be done whenever Exim's configuration file is changed,
269or a new version of Exim is installed. It is not necessary to do
270this when other files (e.g. alias files) are changed.
271.TP
272.B -bf <filename>
273Run Exim in filter testing mode; the file is the filter file to be
274tested, and a test message must be supplied on the standard input.
275If there are no message-dependent tests in the filter, an empty file
276can be supplied. If the test file does not begin with the special
277line
278
279 # Exim filter
280
281then it is taken to be a normal .forward file, and is tested for
282validity under that interpretation. The result of this command,
283provided no errors are detected, is a list of the actions that Exim
284would try to take if presented with the message for real. More
285details of filter testing are given in the separate document
286entitled "Exim's User interface to mail filtering".
287
288When testing a filter file, various parameters that would normally
289be taken from the envelope recipient address of a message can be set
290by means of additional command line options. These are:
291
292 -bfd <domain> default is the qualify domain
293 -bfl <local_part>default is the logged in user
294 -bfp <local_part_prefix> default is null
295 -bfs <local_part_suffix> default is null
296
297The local part should always be set to the incoming address with any
298prefix or suffix stripped, because that is how it appears when a
299message is actually being delivered.
300.TP
301.B -bi
302Sendmail interprets the -bi option as a request to rebuild its alias
303file. Exim does not have the concept of a single alias file, and so
304it cannot mimic this behaviour. However, calls to /usr/lib/sendmail
305-bi tend to appear in various scripts such as NIS make files, so the
306option must be recognized.
307
308If -bi is encountered, the command specified by the bi_command
309configuration option is run, under the uid and gid of the caller of
310Exim. If the -oA option is used, its value is passed to the command
311as an argument. The command set by bi_command may not contain
312arguments. The command can use the exim_dbmbuild utility, or some
313other means, to rebuild alias files if this is required. If the
314bi_command option is not set, then calling Exim with -bi is a no-op.
315.TP
316.B -bm
317Accept an incoming, locally-generated message on the current input,
318and deliver it to the addresses given as the command arguments
319(except when -t is also given - see below). Each argument can be a
320comma-separated list of RFC 822 addresses. This is the default
321option, and is assumed if no other conflicting option is present.
322The message may or may not be delivered immediately, depending on
323the setting of the -od option and the queue_only and queue_smtp
324configuration options.
325
326The format of the message must be as defined in RFC 822, except
327that, for compatibility with sendmail and smail, a line of the form
328
329 From sender Fri Jan 5 12:55 GMT 1996
330
331is permitted to appear at the start of the message. The Solaris 2
332version of the "mail" command inserts such a line, though there is
333no mention of it in the sendmail man page. The sender specified in
334this line is treated as if it were given as the argument to the -f
335option.
336.TP
337.B -bp
338List the contents of the mail queue on the current output. Each
339message on the queue is displayed as in the following example:
340
341 25m 2.9K 0t5C6f-0000c8-00 <alice@wonderland.fict.book>
342 red.king@looking-glass.fict.book
343 <other addresses>
344
345The first line contains the amount of time the message has been on
346the queue (in this case 25 minutes), the size of the message (2.9K),
347the unique identifier for the message, and the message sender, as
348contained in the envelope. If the message is a delivery error
349message, the sender address is empty, and appears as <>. If the
350message is frozen (attempts to deliver it are suspended) then the
351text '*** frozen ***' is displayed at the end of this line.
352
353The recipients of the message (taken from the envelope, not the
354headers) are displayed on subsequent lines. Those addresses to which
355the message has already been delivered are marked with the letter D.
356If an original address gets expanded into several addresses via an
357alias or forward file, the original is displayed with a 'D' when
358deliveries for all of its child addresses are completed.
359.TP
360.B -bP
361If this option is given with no arguments, it causes the values of
362all Exim's main configuration options to be written to the standard
363output. The values of one or more specific options can be requested
364by giving their names as arguments, for example:
365
366 exim -bP qualify_domain local_domains
367
368If configure_file is given, the name of the runtime configuration
369file is output. If log_file_path or pid_file_path are given, the
370names of the directories where log files and daemon pid files are
371written are output, respectively. If these values are unset, log
372files are written in a subdirectory of the spool directory called
373log, and pid files are written directly into the spool directory.
374
375If one of the words director, router, or transport is given,
376followed by the name of an appropriate driver instance, the option
377settings for that driver are output. For example:
378
379 exim -bP transport local_delivery
380
381The generic driver options are output first, followed by the
382driver's private options. A list of the names of drivers of a
383particular type can be obtained by using one of the words
384director_list, router_list, or transport_list, and a complete list
385of all drivers with their option settings can be obtained by using
386directors, routers, or drivers.
387.TP
388.B -brt
389This option is for testing retry rules, and it must be followed by
390up to three arguments. It causes Exim to look for a retry rule that
391matches the values and to output it on the standard output. For
392example:
393
394 exim -brt bach.comp.mus
395 Retry rule: *.comp.mus F,2h,15m; FG,4d,30m;
396
397See chapter 30 for a description of Exim's retry rules. The first
398argument, which is required, can be a complete address in the form
399local_part@domain, or it can be just a domain name. The second
400argument is an optional second domain name; if no retry rule is
401found for the first argument, the second is tried. This ties in with
402Exim's behaviour when looking for retry rules for remote hosts - if
403no rule is found that matches the host, one that matches the mail
404domain is sought. The final argument is the name of a specific
405delivery error, as used in setting up retry rules, for example
406'quota_3d'.
407.TP
408.B -brw
409This option is for testing address rewriting rules, and it must be
410followed by a single argument, consisting of either a local part
411without a domain, or a complete address with a fully-qualified
412domain. Exim outputs how this address would be rewritten for each
413possible place it might appear.
414.TP
415.B -bS
416This option is used for batched SMTP input, where messages have been
417received from some external source by an alternative transport
418mechanism. It causes Exim to accept one or more messages by reading
419SMTP on the standard input, but to generate no responses. All errors
420are reported by sending mail. If the caller is trusted, then the
421senders in the MAIL FROM commands are believed; otherwise the sender
422is always the caller of Exim. Unqualified senders and receivers are
423not rejected (there seems little point) but instead just get
424qualified. Receiver verification and administrative rejection is not
425done, even if configured. HELO and EHLO act as RSET; VRFY, EXPN, ETRN,
426HELP, and DEBUG act as NOOP; QUIT quits.
427.TP
428.B -bs
429This option causes Exim to accept one or more messages by reading SMTP
430commands on the standard input, and producing SMTP replies on the
431standard output. Some user agents use this interface as a way of
432passing locally-generated messages to the MTA. The option can also be
433used to run Exim from inetd, as an alternative to using a listening
434daemon, in which case the standard input is the connected socket. Exim
435distinguishes between the two cases by attempting to read the IP
436address of the peer connected to the standard input. If it is not a
437socket, the call to getpeername() fails, and Exim assumes it is
438dealing with a local message.
439
440If the caller of Exim is trusted, then the senders of messages are
441taken from the SMTP MAIL FROM commands. Otherwise the content of these
442commands is ignored and the sender is set up as the calling user.
443.TP
444.B -bt
445Run in address testing mode, in which each argument is taken as an
446address to be tested. The results are written to the standard
447output. If no arguments are given, Exim runs in an interactive manner,
448prompting with > for addresses to be tested. Each address is handled
449as if it were the recipient address on a message and passed to the
450appropriate directors or routers.
451.TP
452.B -bV
453Write the current version number, compilation number, and compi-
454lation date of the exim binary to the standard output.
455.TP
456.B -bv
457Verify the addresses that are given as the arguments to the command,
458and write the results to the standard output. Verification differs
459from address testing (the -bt option) in that directors and routers
460that have no_verify set are skipped, and if the address is accepted by
461a director or router that has fail_verify set, verification
462fails. This is the same logic that is used when verifying addresses on
463incoming messages (see the sender_verify and receiver_verify options).
464
465If the -v (or -d) option is not set, the output consists of a single
466line for each address, stating whether it was verified or not, and
467giving a reason in the latter case. Otherwise, more details are given
468of how the address has been handled, and in the case of aliases or
469forwarding, the generated addresses are also considered.
470.TP
471.B -C <filename>
472Read the runtime configuration from the given file instead of from
473the default file specified by the CONFIGURE_FILE compile-time set-
474ting. When this option is used by an unprivileged caller, Exim gives
475up its root privilege immediately, and runs with the real and
476effective uid and gid set to those of the caller, to avoid any
477security exposure. It does not do this if the caller is root or the
478exim user. The facility is useful for ensuring that configuration
479files are syntactically correct, but cannot be used for test
480deliveries, unless the caller is privileged, or unless it's an
481exotic configuration that does not require privilege. No check is
482made on the owner or group of the file specified by this option.
483.TP
484.B -d<number>
485Sets a debug level, causing debugging information to be written to the
486standard error file. Whitespace between -d and the number is
487optional. If no number is given, 1 is assumed, and the higher the
488number, the more output is produced. A value of zero turns debugging
489output off. A value of 9 gives the maximum amount of general
490information, 10 gives in addition details of the interpretation of
491filter files, and 11 or higher also turns on the debugging option for
492DNS lookups.
493.TP
494.B -df
495If this option is set and STDERR_FILE was defined when Exim was built,
496debugging information is written to the file defined by that variable
497instead of to the standard error file. This option provides a way of
498obtaining debugging information when Exim is run from inetd.
499.TP
500.B -dm
501This option causes information about memory allocation and freeing
502operations to be written to the standard error file.
503.TP
504.B -E
505This option specifies that an incoming message is a locally-generated
506delivery failure message. It is used internally by Exim when handling
507delivery failures and is not intended for external use. Its only
508effect is to stop Exim generating certain messages to the mailmaster,
509as otherwise message cascades could occur in some situations. As part
510of the same option, a message id may follow the characters -E. If it
511does, the log entry for the receipt of the new message contains the
512id, following 'R=', as a cross reference.
513.TP
514.B -ex
515There are a number of sendmail options starting with -oe which seem to
516be called by various programs without the leading o in the option. For
517example, the vacation program uses -eq. Exim treats all options of the
518form -ex as synonymous with the corresponding -oex options.
519.TP
520.B -F <string>
521Set the sender's full name for use when a locally-generated message
522is being accepted. In the absence of this option, the user's "gecos"
523entry from the password file is used. As users are generally
524permitted to alter their "gecos" entries, no security considerations
525are involved. White space between -F and the <string> is optional.
526.TP
527.B -f <address>
528Set the address of the sender of a locally-generated message. This
529option can normally be used only by root or the Exim user or by one
530of the configured trusted users. In other cases, the sender of a
531local message is always set up as the user who ran the exim command,
532and -f is ignored, with one exception. If the special setting -f <>
533is used by an untrusted user, it does not affect the sender for the
534purposes of managing the Sender: and From: headers, but it does have
535the effect of causing any SMTP transmissions to be sent out with
536
537 MAIL FROM: <>
538
539and local deliveries to contain
540
541 Return-path: <>
542
543when configured to contain Return-path: headers. The filtering code
544treats such a message as an error message, and won't generate
545messages as a result of reading it.
546
547White space between -f and the <string> is optional. The sender of a
548locally-generated message can also be set by an initial 'From' line
549in the message - see the description of -bm above.
550.TP
551.B -h <number>
552This option is accepted for compatibility with sendmail, but at
553present has no effect. (In sendmail it overrides the 'hop count'
554obtained by counting Received headers.)
555.TP
556.B -i
557This option, which has the same effect as -oi, specifies that a dot
558on a line by itself should not terminate an incoming, non-SMTP
559message. I can find no documentation for this option in Solaris 2.4
560sendmail, but the mailx command in Solaris 2.4 uses it.
561.TP
562.B -M
563The arguments are interpreted as a list of message ids, and Exim runs
564a delivery attempt on each message in turn. Retry hints for any of the
565addresses are overridden - this option forces Exim to try to deliver
566even if the normal retry time has not yet been reached. If any of the
567messages is frozen, it is automatically thawed before the delivery
568attempt, provided that the caller is an admin user.
569.TP
570.B -Mar <message-id> <address> <address> ...
571The first argument must be a message id, and the remaining ones must
572be email addresses. Exim adds the addresses to the list of recipi-
573ents of the message. However, if the message is active (in the middle
574of a delivery attempt), its status is not altered. This option can be
575used only by an admin user.
576.TP
577.B -Meb <message-id>
578This runs, under /bin/sh, the command defined in the shell variable
579VISUAL or, if that is not defined, EDITOR or, if that is not defined,
580the command vi, on a copy of the spool file containing the body of
581message (eb = Edit Body). If the editor exits normally, then the
582result of editing replaces the spool file. The message is locked
583during this process, so no delivery attempts can occur. Note that the
584first line of the spool file is its own name; care should be taken not
585to disturb this. The thinking behind providing this feature is that an
586administrator who has had to mess around with the addresses to get a
587message delivered might want to add some (grumbly) comment at the
588start of the message text. This option can be used only by an admin
589user.
590.TP
591.B -Mes <message-id> <address>
592There must be exactly two arguments. The first argument must be a
593message id, and the second one an email address. Exim changes the
594sender address in the message to the given address, which must be a
595fully qualified address, or '<>'. However, if the message is active
596(in the middle of a delivery attempt), its status is not altered.
597This option can be used only by an admin user.
598.TP
599.B -Mmad <message-id>
600Exim marks the all recipient addresses in the message as already
601delivered. However, if the message is active (in the middle of a
602delivery attempt), its status is not altered. This option can be used
603only by an admin user.
604.TP
605.B -Mmd <message-id> <address> <address> ...
606The first argument must be a message id, and the remaining ones must
607be email addresses. Exim marks the given addresses as already
608delivered. However, if the message is active (in the middle of a
609delivery attempt), its status is not altered. This option can be used
610only by an admin user.
611.TP
612.B -MC <transport> <hostname> <sequence number> <message id>
613This option is not intended for use by outside callers. It is used
614internally by Exim to invoke another instance of itself to deliver a
615waiting message using an existing SMTP channel, which is passed as the
616standard input and output. Details are given in chapter 43. This must
617be the final option, and the caller must be root or the Exim user in
618order to use it.
619.TP
620.B -Mc
621The arguments are interpreted as a list of message ids, and Exim runs
622a delivery attempt on each message in turn, but unlike the -M option,
623it does check for retry hints, and respects any that are found. This
624option is not very useful to external callers (except for testing). It
625is provided for internal use by Exim when it needs to re-invoke itself
626in order to regain root privilege for a delivery (see chapter 44).
627.TP
628.B -Mf
629The arguments are interpreted as a list of message ids, and each
630message is marked 'frozen'. This prevents any delivery attempts taking
631place until the message is 'thawed', either manually or as a result of
632the auto_thaw configuration option. However, if any of the messages is
633active (in the middle of a delivery attempt), its status is not
634altered. This option can be used only by an admin user.
635.TP
636.B -Mg
637The arguments are interpreted as a list of message ids, and Exim gives
638up trying to deliver those messages. A delivery error message is sent,
639containing the text 'cancelled by administrator'. However, if any of
640the messages is active, its status is not altered. This option can be
641used only by an admin user.
642.TP
643.B -Mt
644The arguments are interpreted as a list of message ids, and each
645message that was 'frozen' is now 'thawed', so that delivery attempts
646can resume. However, if any of the messages is active, its status is
647not altered. This option can be used only by an admin user.
648.TP
649.B -Mrm
650The arguments are interpreted as a list of message ids, and each
651message is completely removed from Exim's queue, and forgotten.
652However, if any of the messages is active, its status is not
653altered. This option can be used only by an admin user or by the user
654who originally caused the message to be placed on the queue.
655.TP
656.B -m
657This is apparently a synonym for -om that is accepted by sendmail, so
658Exim treats it that way too.
659.TP
660.B -N
661This is a debugging option that inhibits delivery of a message at the
662transport level. It implies at least -d1. Exim goes through many of
663the motions of delivery - it just doesn't actually transport the
664message, but instead behaves as if it had successfully done so. The
665log, for example, will contain entries as if the message had been
666delivered. Only root or the exim user are allowed to use -N with -bd,
667-q, or -M. In other words, an ordinary user can use it only when
668supplying an incoming message.
669.TP
670.B -oA <file name>
671This option is used by Sendmail in conjunction with -bi to specify an
672alternative alias file name. Exim handles -bi differently; see the
673description above.
674.TP
675.B -oB <n>
676This is a debugging option which limits the maximum number of SMTP
677deliveries down one channel to <n>, overriding the value set in the
678smtp transport. If <n> is omitted, the limit is set to 1 (no
679batching).
680.TP
681.B -odb
682This option applies to all modes in which Exim accepts incoming
683messages, including the listening daemon. It requests 'background'
684delivery of such messages, which means that the accepting process
685automatically starts another delivery process for each message
686received. Exim does not wait for such processes to complete (it can
687take some time to perform SMTP deliveries). This is the default action
688if none of the -od options are present.
689.TP
690.B -odf
691This option (compatible with smail) requests 'foreground' (syn-
692chronous) delivery when Exim has accepted a locally-generated mess-
693age. For the daemon it is exactly the same as -odb. For a single
694message received on the standard input, if the protection regime
695permits it (see chapter 44), Exim converts the reception process into
696a delivery process. In other cases, it creates a new delivery process,
697and then waits for it to complete before proceeding.
698.TP
699.B -odi
700This option is synonymous with -odf. It is provided for compati-
701bility with sendmail.
702.TP
703.B -odq
704This option applies to all modes in which Exim accepts incoming
705messages, including the listening daemon. It specifies that the
706accepting process should not automatically start a delivery attempt
707for each message received. Messages are placed on the queue, and
708remain there until a subsequent queue-running process encounters
709them. The queue_only configuration option has the same effect.
710.TP
711.B -odqr
712This option applies to all modes in which Exim accepts incoming
713messages, including the listening daemon. It causes Exim to process
714local addresses when a message is received, but not even to try
715routing remote addresses. Contrast with -odqs below, which does the
716routing, but not the delivery. The remote addresses will be picked up
717by the next queue runner. The queue_remote configuration option has
718the same effect.
719.TP
720.B -odqs
721This option is a hybrid between -odb and -odq. A delivery process is
722started for each incoming message, the addresses are all processed,
723and local deliveries are done in the normal way. However, if any SMTP
724deliveries are required, they are not done at this time. Such messages
725remain on the queue until a subsequent queue-running process
726encounters them. Because routing was done, Exim knows which messages
727are waiting for which hosts, and so a number of messages for the same
728host will get sent in a single SMTP connection. The queue_smtp
729configuration option has the same effect.
730.TP
731.B -oem
732If an error is detected while a non-SMTP message is being received
733(e.g. a malformed address), the error is reported to the sender in a
734mail message. This is the default option. After a message has been
735successfully received, any subsequent delivery errors are always
736reported in this way.
737.TP
738.B -oep
739If an error is detected while a non-SMTP message is being received,
740the error is reported by writing a message to the standard error file
741(stderr).
742.TP
743.B -oeq
744This option is supported for compatibility with sendmail, but has the
745same effect as -oep.
746.TP
747.B -oew
748This option is supported for compatibility with sendmail, but has the
749same effect as -oem.
750.TP
751.B -oi
752This option, which has the same effect as -i, specifies that a dot on
753a line by itself should not terminate an incoming, non-SMTP message.
754.TP
755.B -oMa <host address>
756This option sets the sender host address value, and can be used only
757by a trusted caller. The value is used in log entries and can appear
758in Received headers. The option is intended for use when handing to
759Exim messages received by other means.
760.TP
761.B -oMr <protocol name>
762This option sets the received protocol value, and can be used only by
763a trusted caller. The value is used in log entries and can appear in
764Received headers. The option is intended for use when handing to Exim
765messages received by other means.
766.TP
767.B -oMs <host name>
768This option sets the sender host name value, and can be used only by a
769trusted caller. The value is used in log entries and can appear in
770Received headers. The option is intended for use when handing to Exim
771messages received by other means.
772.TP
773.B -oMt <ident string>
774This option sets the sender ident value, and can be used only by a
775trusted caller. The value is used in log entries and can appear in
776Received headers. The option is intended for use when handing to Exim
777messages received by other means.
778.TP
779.B -om
780In sendmail, this option means 'me too', indicating that the sender of
781a message should receive a copy of the message if the sender appears
782in an alias expansion. Exim always does this, so the option does
783nothing.
784.TP
785.B -or <time>
786This option sets a timeout value for incoming non-SMTP messages. If it
787is not set, Exim will wait forever for the standard input. The value
788can also be set using the accept_timeout configuration vari- able. The
789format used for specifying times is described in section 7.6.
790.TP -ov
791This option has exactly the same effect as -v.
792.TP
793.B -oX <number>
794This option is relevant only when the -bd option is also given. It
795specifies an alternative TCP/IP port number for the listening daemon,
796and is useful for testing. When used, the process number of the daemon
797is written to a file whose name is exim- daemon.<number>.pid in Exim's
798spool directory.
799.TP
800.B -q
801If the -q option is not followed by a time value, it requests a single
802queue run operation. This option can be used only by an admin
803user. Exim starts up a delivery process for each (inactive) message on
804the queue in turn, and waits for it to finish before starting the next
805one. When all the queued messages have been considered, the original
806process terminates. In other words, a single pass is made over the
807waiting mail. Use -q with a time (see below) if you want this to be
808repeated periodically.
809
810Exim processes the waiting messages in an unpredictable order. It
811isn't very random, but it is likely to be different each time, which
812is all that matters. If one particular message screws up a remote MTA,
813other messages to the same MTA have a chance of getting through if
814they get tried first.
815
816However, it is possible to cause the messages to be processed in
817lexical id order, which is essentially the order in which they
818arrived, and to start this operation at a particular point by
819following the -q option with a starting message id. For example:
820
821 exim -q 0t5C6f-0000c8-00
822
823This causes Exim to skip any messages whose ids are lexically less
824than the given id. A second id can also be given to stop the queue run
825before the end. See also the -R option.
826.TP
827.B -q <time>
828This version of the -q option (which again can be run only by an admin
829user) causes Exim to run as a daemon, starting a queue-running process
830at intervals specified by the given time value (whose format is
831described in section 7.6). This form of the -q option is commonly
832combined with the -bd option, in which case a single daemon process
833handles both functions. A common way of starting up a combined daemon
834at system boot time is to use a command such as
835
836 /opt/exim/bin/exim -bd -q30m
837
838Such a daemon listens for incoming SMTP calls, and also fires up a
839queue-runner process every 30 minutes. The process id of such a daemon
840is written to a file called exim-daemon.pid in Exim's spool directory,
841unless the -oX option has been used, in which case the file is called
842exim-daemon.<port-number>.pid. The location of the pid file can be
843changed by defining PID_FILE_PATH in Local/Makefile. If a daemon is
844started without -bd then the -q option used to start it is added to
845the pid file name.
846.TP
847.B -qf
848This option operates like -q, and may appear with or without a
849following time. The difference is that a delivery attempt is forced
850for each message, whereas with -q only those addresses that have
851passed their retry times are tried.
852.TP
853.B -qfl
854This option operates like -ql, and may appear with or without a
855following time. The difference is that a delivery attempt is forced
856for each message, whereas with -ql only those local addresses that
857have passed their retry times are tried.
858.TP
859.B -ql
860This option operates like -q, and may appear with or without a
861following time. The difference is that only local addresses are
862considered for delivery. Note that -ql cannot detect apparently remote
863addresses that actually turn out to be local when their domains get
864fully qualified.
865.TP -R <string>
866This option is similar to -q with no time value, except that, when
867scanning the messages on the queue, Exim processes only those that
868have at least one undelivered address containing the given string,
869which is checked in a case-independent way. However, once a message is
870selected, all its addresses are processed. For the first message
871containing a matching address, Exim overrides any retry information
872and forces a delivery attempt. This makes it straightforward to
873initiate delivery for all messages to a given domain after a host has
874been down for some time. When the SMTP command ETRN is permitted (see
875the smtp_etrn options), its effect is to run Exim with the -R option.
876.TP
877.B -r
878This is a documented (for sendmail) obsolete alternative name for -f.
879.TP
880.B -t
881When Exim is receiving a locally-generated, non-SMTP message on the
882current input, the -t option causes the recipients of the message to
883be obtained from the To, Cc, and Bcc headers in the message instead of
884from the command arguments. If there are any arguments, they specify
885addresses to which the message is not to be delivered. That is, the
886argument addresses are removed from the recipients list obtained from
887the headers. If a Bcc header is present, it is removed from the
888message unless there is no To or Cc header, in which case a Bcc header
889with no data is created, in accordance with RFC 822.
890.TP
891.B -v
892This option has exactly the same effect as -d1; it causes Exim to be
893'verbose' and produce some output describing what it is doing on the
894standard error file. In particular, if an SMTP connection is made, the
895SMTP dialogue is shown.
896.TP
897.B -x
898AIX uses -x for a private purpose ('mail from a local mail program has
899National Language Support extended characters in the body of the mail
900item'). It sets -x when calling the MTA from its mail command. Exim
901ignores this option.
902.SH "SEE ALSO"
903There is extensive documentation available in
904.I /usr/doc/exim
905and in the info system regarding exim.
906Debian users please be sure to have the
907.B exim-doc
908package installed.
909.SH AUTHOR
910This manual page was stitched together by Christoph Lameter,
911<clameter@debian.org>, from the original documentation coming with the
912sourcepackage for the Debian GNU/Linux system, and cleaned up a little
913by Tim Cutts <tjrc1@scalopus.bio.cam.ac.uk>.
This page took 2.47341 seconds and 4 git commands to generate.