1EXIM(8) System Manager's Manual EXIM(8)
2
3
4
6 exim - a Mail Transfer Agent
7
9 exim [options] arguments ...
10 mailq [options] arguments ...
11 rsmtp [options] arguments ...
12 rmail [options] arguments ...
13 runq [options] arguments ...
14 newaliases [options] arguments ...
15
17
18 Exim is a mail transfer agent (MTA) developed at the University of Cam‐
19 bridge. It is a large program with very many facilities. For a full
20 specification, see the reference manual. This man page contains only a
21 description of the command line options. It has been automatically gen‐
22 erated from the reference manual source, hopefully without too much
23 mangling.
24
25 Like other MTAs, Exim replaces Sendmail, and is normally called by user
26 agents (MUAs) using the path /usr/sbin/sendmail when they submit mes‐
27 sages for delivery (some operating systems use /usr/lib/sendmail). This
28 path is normally set up as a symbolic link to the Exim binary. It may
29 also be used by boot scripts to start the Exim daemon. Many of Exim's
30 command line options are compatible with Sendmail so that it can act as
31 a drop-in replacement.
32
34
35 If no options are present that require a specific action (such as
36 starting the daemon or a queue runner, testing an address, receiving a
37 message in a specific format, or listing the queue), and there are no
38 arguments on the command line, Exim outputs a brief message about
39 itself and exits.
40
41 However, if there is at least one command line argument, -bm (accept a
42 local message on the standard input, with the arguments specifying the
43 recipients) is assumed. Thus, for example, if Exim is installed in
44 /usr/sbin, you can send a message from the command line like this:
45
46 /usr/sbin/exim -i <recipient-address(es)>
47 <message content, including all the header lines>
48 CTRL-D
49
50 The -i option prevents a line containing just a dot from terminating
51 the message. Only an end-of-file (generated by typing CTRL-D if the
52 input is from a terminal) does so.
53
55
56 If an Exim binary is called using one of the names listed in this sec‐
57 tion (typically via a symbolic link), certain options are assumed.
58
59 mailq Behave as if the option -bp were present before any other
60 options. The -bp option requests a listing of the contents of
61 the mail queue on the standard output.
62
63 rsmtp Behaves as if the option -bS were present before any other
64 options, for compatibility with Smail. The -bS option is used
65 for reading in a number of messages in batched SMTP format.
66
67 rmail Behave as if the -i and -oee options were present before any
68 other options, for compatibility with Smail. The name rmail is
69 used as an interface by some UUCP systems. The -i option speci‐
70 fies that a dot on a line by itself does not terminate a
71 non-SMTP message; -oee requests that errors detected in non-SMTP
72 messages be reported by emailing the sender.
73
74 runq Behave as if the option -q were present before any other
75 options, for compatibility with Smail. The -q option causes a
76 single queue runner process to be started. It processes the
77 queue once, then exits.
78
79 newaliases
80 Behave as if the option -bi were present before any other
81 options, for compatibility with Sendmail. This option is used
82 for rebuilding Sendmail's alias file. Exim does not have the
83 concept of a single alias file, but can be configured to run a
84 specified command if called with the -bi option.
85
87
88 -- This is a pseudo-option whose only purpose is to terminate
89 the options and therefore to cause subsequent command line
90 items to be treated as arguments rather than options, even if
91 they begin with hyphens.
92
93 --help This option causes Exim to output a few sentences stating
94 what it is. The same output is generated if the Exim binary
95 is called with no options and no arguments.
96
97 --version This option is an alias for -bV and causes version informa‐
98 tion to be displayed.
99
100 -Ac -Am These options are used by Sendmail for selecting configu‐
101 ration files and are ignored by Exim.
102
103 -B<type> This is a Sendmail option for selecting 7 or 8 bit process‐
104 ing. Exim is 8-bit clean; it ignores this option.
105
106 -bd This option runs Exim as a daemon, awaiting incoming SMTP
107 connections. Usually the -bd option is combined with the
108 -q<time> option, to specify that the daemon should also ini‐
109 tiate periodic queue runs.
110
111 The -bd option can be used only by an admin user. If either
112 of the -d (debugging) or -v (verifying) options are set, the
113 daemon does not disconnect from the controlling terminal.
114 When running this way, it can be stopped by pressing ctrl-C.
115
116 By default, Exim listens for incoming connections to the
117 standard SMTP port on all the host's running interfaces. How‐
118 ever, it is possible to listen on other ports, on multiple
119 ports, and only on specific interfaces.
120
121 When a listening daemon is started without the use of -oX
122 (that is, without overriding the normal configuration), it
123 writes its process id to a file called exim-daemon.pid in
124 Exim's spool directory. This location can be overridden by
125 setting PID_FILE_PATH in Local/Makefile. The file is written
126 while Exim is still running as root.
127
128 When -oX is used on the command line to start a listening
129 daemon, the process id is not written to the normal pid file
130 path. However, -oP can be used to specify a path on the com‐
131 mand line if a pid file is required.
132
133 The SIGHUP signal can be used to cause the daemon to re-exe‐
134 cute itself. This should be done whenever Exim's configura‐
135 tion file, or any file that is incorporated into it by means
136 of the .include facility, is changed, and also whenever a new
137 version of Exim is installed. It is not necessary to do this
138 when other files that are referenced from the configuration
139 (for example, alias files) are changed, because these are
140 reread each time they are used.
141
142 -bdf This option has the same effect as -bd except that it never
143 disconnects from the controlling terminal, even when no
144 debugging is specified.
145
146 -be Run Exim in expansion testing mode. Exim discards its root
147 privilege, to prevent ordinary users from using this mode to
148 read otherwise inaccessible files. If no arguments are given,
149 Exim runs interactively, prompting for lines of data. Other‐
150 wise, it processes each argument in turn.
151
152 If Exim was built with USE_READLINE=yes in Local/Makefile, it
153 tries to load the libreadline library dynamically whenever
154 the -be option is used without command line arguments. If
155 successful, it uses the readline() function, which provides
156 extensive line-editing facilities, for reading the test data.
157 A line history is supported.
158
159 Long expansion expressions can be split over several lines by
160 using backslash continuations. As in Exim's runtime configu‐
161 ration, white space at the start of continuation lines is
162 ignored. Each argument or data line is passed through the
163 string expansion mechanism, and the result is output. Vari‐
164 able values from the configuration file (for example, $qual‐
165 ify_domain) are available, but no message-specific values
166 (such as $message_exim_id) are set, because no message is
167 being processed (but see -bem and -Mset).
168
169 Note: If you use this mechanism to test lookups, and you
170 change the data files or databases you are using, you must
171 exit and restart Exim before trying the same lookup again.
172 Otherwise, because each Exim process caches the results of
173 lookups, you will just get the same result as before.
174
175 Macro processing is done on lines before string-expansion:
176 new macros can be defined and macros will be expanded.
177 Because macros in the config file are often used for secrets,
178 those are only available to admin users.
179
180 -bem <filename>
181 This option operates like -be except that it must be followed
182 by the name of a file. For example:
183
184 exim -bem /tmp/testmessage
185
186 The file is read as a message (as if receiving a locally-sub‐
187 mitted non-SMTP message) before any of the test expansions
188 are done. Thus, message-specific variables such as $mes‐
189 sage_size and $header_from: are available. However, no
190 Received: header is added to the message. If the -t option is
191 set, recipients are read from the headers in the normal way,
192 and are shown in the $recipients variable. Note that recipi‐
193 ents cannot be given on the command line, because further
194 arguments are taken as strings to expand (just like -be).
195
196 -bF <filename>
197 This option is the same as -bf except that it assumes that
198 the filter being tested is a system filter. The additional
199 commands that are available only in system filters are recog‐
200 nized.
201
202 -bf <filename>
203 This option runs Exim in user filter testing mode; the file
204 is the filter file to be tested, and a test message must be
205 supplied on the standard input. If there are no mes‐
206 sage-dependent tests in the filter, an empty file can be sup‐
207 plied.
208
209 If you want to test a system filter file, use -bF instead of
210 -bf. You can use both -bF and -bf on the same command, in
211 order to test a system filter and a user filter in the same
212 run. For example:
213
214 exim -bF /system/filter -bf /user/filter </test/message
215
216 This is helpful when the system filter adds header lines or
217 sets filter variables that are used by the user filter.
218
219 If the test filter file does not begin with one of the spe‐
220 cial lines
221
222 # Exim filter
223 # Sieve filter
224
225 it is taken to be a normal .forward file, and is tested for
226 validity under that interpretation.
227
228 The result of an Exim command that uses -bf, provided no
229 errors are detected, is a list of the actions that Exim would
230 try to take if presented with the message for real. More
231 details of filter testing are given in the separate document
232 entitled Exim's interfaces to mail filtering.
233
234 When testing a filter file, the envelope sender can be set by
235 the -f option, or by a "From " line at the start of the test
236 message. Various parameters that would normally be taken from
237 the envelope recipient address of the message can be set by
238 means of additional command line options (see the next four
239 options).
240
241 -bfd <domain>
242 This sets the domain of the recipient address when a filter
243 file is being tested by means of the -bf option. The default
244 is the value of $qualify_domain.
245
246 -bfl <local part>
247 This sets the local part of the recipient address when a fil‐
248 ter file is being tested by means of the -bf option. The
249 default is the username of the process that calls Exim. A
250 local part should be specified with any prefix or suffix
251 stripped, because that is how it appears to the filter when a
252 message is actually being delivered.
253
254 -bfp <prefix>
255 This sets the prefix of the local part of the recipient
256 address when a filter file is being tested by means of the
257 -bf option. The default is an empty prefix.
258
259 -bfs <suffix>
260 This sets the suffix of the local part of the recipient
261 address when a filter file is being tested by means of the
262 -bf option. The default is an empty suffix.
263
264 -bh <IP address>
265 This option runs a fake SMTP session as if from the given IP
266 address, using the standard input and output. The IP address
267 may include a port number at the end, after a full stop. For
268 example:
269
270 exim -bh 10.9.8.7.1234
271 exim -bh fe80::a00:20ff:fe86:a061.5678
272
273 When an IPv6 address is given, it is converted into canonical
274 form. In the case of the second example above, the value of
275 $sender_host_address after conversion to the canonical form
276 is fe80:0000:0000:0a00:20ff:fe86:a061.5678.
277
278 Comments as to what is going on are written to the standard
279 error file. These include lines beginning with "LOG" for any‐
280 thing that would have been logged. This facility is provided
281 for testing configuration options for incoming messages, to
282 make sure they implement the required policy. For example,
283 you can test your relay controls using -bh.
284
285 Warning 1: You can test features of the configuration that
286 rely on ident (RFC 1413) information by using the -oMt
287 option. However, Exim cannot actually perform an ident call‐
288 out when testing using -bh because there is no incoming SMTP
289 connection.
290
291 Warning 2: Address verification callouts are also skipped
292 when testing using -bh. If you want these callouts to occur,
293 use -bhc instead.
294
295 Messages supplied during the testing session are discarded,
296 and nothing is written to any of the real log files. There
297 may be pauses when DNS (and other) lookups are taking place,
298 and of course these may time out. The -oMi option can be used
299 to specify a specific IP interface and port if this is impor‐
300 tant, and -oMaa and -oMai can be used to set parameters as if
301 the SMTP session were authenticated.
302
303 The exim_checkaccess utility is a "packaged" version of -bh
304 whose output just states whether a given recipient address
305 from a given host is acceptable or not.
306
307 Features such as authentication and encryption, where the
308 client input is not plain text, cannot easily be tested with
309 -bh. Instead, you should use a specialized SMTP test program
310 such as swaks.
311
312 -bhc <IP address>
313 This option operates in the same way as -bh, except that
314 address verification callouts are performed if required. This
315 includes consulting and updating the callout cache database.
316
317 -bi Sendmail interprets the -bi option as a request to rebuild
318 its alias file. Exim does not have the concept of a single
319 alias file, and so it cannot mimic this behaviour. However,
320 calls to /usr/lib/sendmail with the -bi option tend to appear
321 in various scripts such as NIS make files, so the option must
322 be recognized.
323
324 If -bi is encountered, the command specified by the bi_com‐
325 mand configuration option is run, under the uid and gid of
326 the caller of Exim. If the -oA option is used, its value is
327 passed to the command as an argument. The command set by
328 bi_command may not contain arguments. The command can use the
329 exim_dbmbuild utility, or some other means, to rebuild alias
330 files if this is required. If the bi_command option is not
331 set, calling Exim with -bi is a no-op.
332
333 -bI:help We shall provide various options starting -bI: for querying
334 Exim for information. The output of many of these will be
335 intended for machine consumption. This one is not. The
336 -bI:help option asks Exim for a synopsis of supported options
337 beginning -bI:. Use of any of these options shall cause Exim
338 to exit after producing the requested output.
339
340 -bI:dscp This option causes Exim to emit an alphabetically sorted list
341 of all recognised DSCP names.
342
343 -bI:sieve This option causes Exim to emit an alphabetically sorted list
344 of all supported Sieve protocol extensions on stdout, one per
345 line. This is anticipated to be useful for ManageSieve (RFC
346 5804) implementations, in providing that protocol's SIEVE
347 capability response line. As the precise list may depend
348 upon compile-time build options, which this option will adapt
349 to, this is the only way to guarantee a correct response.
350
351 -bm This option runs an Exim receiving process that accepts an
352 incoming, locally-generated message on the standard input.
353 The recipients are given as the command arguments (except
354 when -t is also present - see below). Each argument can be a
355 comma-separated list of RFC 2822 addresses. This is the
356 default option for selecting the overall action of an Exim
357 call; it is assumed if no other conflicting option is
358 present.
359
360 If any addresses in the message are unqualified (have no
361 domain), they are qualified by the values of the qual‐
362 ify_domain or qualify_recipient options, as appropriate. The
363 -bnq option (see below) provides a way of suppressing this
364 for special cases.
365
366 Policy checks on the contents of local messages can be
367 enforced by means of the non-SMTP ACL.
368
369 The return code is zero if the message is successfully
370 accepted. Otherwise, the action is controlled by the -oex
371 option setting - see below.
372
373 The format of the message must be as defined in RFC 2822,
374 except that, for compatibility with Sendmail and Smail, a
375 line in one of the forms
376
377 From sender Fri Jan 5 12:55 GMT 1997
378 From sender Fri, 5 Jan 97 12:55:01
379
380 (with the weekday optional, and possibly with additional text
381 after the date) is permitted to appear at the start of the
382 message. There appears to be no authoritative specification
383 of the format of this line. Exim recognizes it by matching
384 against the regular expression defined by the uucp_from_pat‐
385 tern option, which can be changed if necessary.
386
387 The specified sender is treated as if it were given as the
388 argument to the -f option, but if a -f option is also
389 present, its argument is used in preference to the address
390 taken from the message. The caller of Exim must be a trusted
391 user for the sender of a message to be set in this way.
392
393 -bmalware <filename>
394 This debugging option causes Exim to scan the given file or
395 directory (depending on the used scanner interface), using
396 the malware scanning framework. The option of av_scanner
397 influences this option, so if av_scanner's value is dependent
398 upon an expansion then the expansion should have defaults
399 which apply to this invocation. ACLs are not invoked, so if
400 av_scanner references an ACL variable then that variable will
401 never be populated and -bmalware will fail.
402
403 Exim will have changed working directory before resolving the
404 filename, so using fully qualified pathnames is advisable.
405 Exim will be running as the Exim user when it tries to open
406 the file, rather than as the invoking user. This option
407 requires admin privileges.
408
409 The -bmalware option will not be extended to be more gener‐
410 ally useful, there are better tools for file-scanning. This
411 option exists to help administrators verify their Exim and AV
412 scanner configuration.
413
414 -bnq By default, Exim automatically qualifies unqualified
415 addresses (those without domains) that appear in messages
416 that are submitted locally (that is, not over TCP/IP). This
417 qualification applies both to addresses in envelopes, and
418 addresses in header lines. Sender addresses are qualified
419 using qualify_domain, and recipient addresses using qual‐
420 ify_recipient (which defaults to the value of qual‐
421 ify_domain).
422
423 Sometimes, qualification is not wanted. For example, if -bS
424 (batch SMTP) is being used to re-submit messages that origi‐
425 nally came from remote hosts after content scanning, you
426 probably do not want to qualify unqualified addresses in
427 header lines. (Such lines will be present only if you have
428 not enabled a header syntax check in the appropriate ACL.)
429
430 The -bnq option suppresses all qualification of unqualified
431 addresses in messages that originate on the local host. When
432 this is used, unqualified addresses in the envelope provoke
433 errors (causing message rejection) and unqualified addresses
434 in header lines are left alone.
435
436 -bP If this option is given with no arguments, it causes the val‐
437 ues of all Exim's main configuration options to be written to
438 the standard output. The values of one or more specific
439 options can be requested by giving their names as arguments,
440 for example:
441
442 exim -bP qualify_domain hold_domains
443
444 However, any option setting that is preceded by the word
445 "hide" in the configuration file is not shown in full, except
446 to an admin user. For other users, the output is as in this
447 example:
448
449 mysql_servers = <value not displayable>
450
451 If config is given as an argument, the config is output, as
452 it was parsed, any include file resolved, any comment
453 removed.
454
455 If config_file is given as an argument, the name of the run‐
456 time configuration file is output. (configure_file works too,
457 for backward compatibility.) If a list of configuration
458 files was supplied, the value that is output here is the name
459 of the file that was actually used.
460
461 If the -n flag is given, then for most modes of -bP operation
462 the name will not be output.
463
464 If log_file_path or pid_file_path are given, the names of the
465 directories where log files and daemon pid files are written
466 are output, respectively. If these values are unset, log
467 files are written in a sub-directory of the spool directory
468 called log, and the pid file is written directly into the
469 spool directory.
470
471 If -bP is followed by a name preceded by +, for example,
472
473 exim -bP +local_domains
474
475 it searches for a matching named list of any type (domain,
476 host, address, or local part) and outputs what it finds.
477
478 If one of the words router, transport, or authenticator is
479 given, followed by the name of an appropriate driver
480 instance, the option settings for that driver are output. For
481 example:
482
483 exim -bP transport local_delivery
484
485 The generic driver options are output first, followed by the
486 driver's private options. A list of the names of drivers of a
487 particular type can be obtained by using one of the words
488 router_list, transport_list, or authenticator_list, and a
489 complete list of all drivers with their option settings can
490 be obtained by using routers, transports, or authenticators.
491
492 If environment is given as an argument, the set of environ‐
493 ment variables is output, line by line. Using the -n flag
494 suppresses the value of the variables.
495
496 If invoked by an admin user, then macro, macro_list and
497 macros are available, similarly to the drivers. Because
498 macros are sometimes used for storing passwords, this option
499 is restricted. The output format is one item per line. For
500 the "-bP macro <name>" form, if no such macro is found the
501 exit status will be nonzero.
502
503 -bp This option requests a listing of the contents of the mail
504 queue on the standard output. If the -bp option is followed
505 by a list of message ids, just those messages are listed. By
506 default, this option can be used only by an admin user. How‐
507 ever, the queue_list_requires_admin option can be set false
508 to allow any user to see the queue.
509
510 Each message in the queue is displayed as in the following
511 example:
512
513 25m 2.9K 0t5C6f-0000c8-00 <alice@wonderland.fict.example>
514 red.king@looking-glass.fict.example
515 <other addresses>
516
517 The first line contains the length of time the message has
518 been in the queue (in this case 25 minutes), the size of the
519 message (2.9K), the unique local identifier for the message,
520 and the message sender, as contained in the envelope. For
521 bounce messages, the sender address is empty, and appears as
522 "<>". If the message was submitted locally by an untrusted
523 user who overrode the default sender address, the user's
524 login name is shown in parentheses before the sender address.
525
526 If the message is frozen (attempts to deliver it are sus‐
527 pended) then the text "*** frozen ***" is displayed at the
528 end of this line.
529
530 The recipients of the message (taken from the envelope, not
531 the headers) are displayed on subsequent lines. Those
532 addresses to which the message has already been delivered are
533 marked with the letter D. If an original address gets
534 expanded into several addresses via an alias or forward file,
535 the original is displayed with a D only when deliveries for
536 all of its child addresses are complete.
537
538 -bpa This option operates like -bp, but in addition it shows
539 delivered addresses that were generated from the original top
540 level address(es) in each message by alias or forwarding
541 operations. These addresses are flagged with "+D" instead of
542 just "D".
543
544 -bpc This option counts the number of messages in the queue, and
545 writes the total to the standard output. It is restricted to
546 admin users, unless queue_list_requires_admin is set false.
547
548 -bpr This option operates like -bp, but the output is not sorted
549 into chronological order of message arrival. This can speed
550 it up when there are lots of messages in the queue, and is
551 particularly useful if the output is going to be post-pro‐
552 cessed in a way that doesn't need the sorting.
553
554 -bpra This option is a combination of -bpr and -bpa.
555
556 -bpru This option is a combination of -bpr and -bpu.
557
558 -bpu This option operates like -bp but shows only undelivered
559 top-level addresses for each message displayed. Addresses
560 generated by aliasing or forwarding are not shown, unless the
561 message was deferred after processing by a router with the
562 one_time option set.
563
564 -brt This option is for testing retry rules, and it must be fol‐
565 lowed by up to three arguments. It causes Exim to look for a
566 retry rule that matches the values and to write it to the
567 standard output. For example:
568
569 exim -brt bach.comp.mus.example
570 Retry rule: *.comp.mus.example F,2h,15m; F,4d,30m;
571
572 The first argument, which is required, can be a complete
573 address in the form local_part@domain, or it can be just a
574 domain name. If the second argument contains a dot, it is
575 interpreted as an optional second domain name; if no retry
576 rule is found for the first argument, the second is tried.
577 This ties in with Exim's behaviour when looking for retry
578 rules for remote hosts - if no rule is found that matches the
579 host, one that matches the mail domain is sought. Finally, an
580 argument that is the name of a specific delivery error, as
581 used in setting up retry rules, can be given. For example:
582
583 exim -brt haydn.comp.mus.example quota_3d
584 Retry rule: *@haydn.comp.mus.example quota_3d F,1h,15m
585
586 -brw This option is for testing address rewriting rules, and it
587 must be followed by a single argument, consisting of either a
588 local part without a domain, or a complete address with a
589 fully qualified domain. Exim outputs how this address would
590 be rewritten for each possible place it might appear.
591
592 -bS This option is used for batched SMTP input, which is an
593 alternative interface for non-interactive local message sub‐
594 mission. A number of messages can be submitted in a single
595 run. However, despite its name, this is not really SMTP
596 input. Exim reads each message's envelope from SMTP commands
597 on the standard input, but generates no responses. If the
598 caller is trusted, or untrusted_set_sender is set, the
599 senders in the SMTP MAIL commands are believed; otherwise the
600 sender is always the caller of Exim.
601
602 The message itself is read from the standard input, in SMTP
603 format (leading dots doubled), terminated by a line contain‐
604 ing just a single dot. An error is provoked if the terminat‐
605 ing dot is missing. A further message may then follow.
606
607 As for other local message submissions, the contents of
608 incoming batch SMTP messages can be checked using the
609 non-SMTP ACL. Unqualified addresses are automatically quali‐
610 fied using qualify_domain and qualify_recipient, as appropri‐
611 ate, unless the -bnq option is used.
612
613 Some other SMTP commands are recognized in the input. HELO
614 and EHLO act as RSET; VRFY, EXPN, ETRN, and HELP act as NOOP;
615 QUIT quits, ignoring the rest of the standard input.
616
617 If any error is encountered, reports are written to the stan‐
618 dard output and error streams, and Exim gives up immediately.
619 The return code is 0 if no error was detected; it is 1 if one
620 or more messages were accepted before the error was detected;
621 otherwise it is 2.
622
623
624 -bs This option causes Exim to accept one or more messages by
625 reading SMTP commands on the standard input, and producing
626 SMTP replies on the standard output. SMTP policy controls, as
627 defined in ACLs are applied. Some user agents use this
628 interface as a way of passing locally-generated messages to
629 the MTA.
630
631 In this usage, if the caller of Exim is trusted, or
632 untrusted_set_sender is set, the senders of messages are
633 taken from the SMTP MAIL commands. Otherwise the content of
634 these commands is ignored and the sender is set up as the
635 calling user. Unqualified addresses are automatically quali‐
636 fied using qualify_domain and qualify_recipient, as appropri‐
637 ate, unless the -bnq option is used.
638
639 The -bs option is also used to run Exim from inetd, as an
640 alternative to using a listening daemon. Exim can distinguish
641 the two cases by checking whether the standard input is a
642 TCP/IP socket. When Exim is called from inetd, the source of
643 the mail is assumed to be remote, and the comments above con‐
644 cerning senders and qualification do not apply. In this situ‐
645 ation, Exim behaves in exactly the same way as it does when
646 receiving a message via the listening daemon.
647
648 -bt This option runs Exim in address testing mode, in which each
649 argument is taken as a recipient address to be tested for
650 deliverability. The results are written to the standard out‐
651 put. If a test fails, and the caller is not an admin user, no
652 details of the failure are output, because these might con‐
653 tain sensitive information such as usernames and passwords
654 for database lookups.
655
656 If no arguments are given, Exim runs in an interactive man‐
657 ner, prompting with a right angle bracket for addresses to be
658 tested.
659
660 Unlike the -be test option, you cannot arrange for Exim to
661 use the readline() function, because it is running as root
662 and there are security issues.
663
664 Each address is handled as if it were the recipient address
665 of a message (compare the -bv option). It is passed to the
666 routers and the result is written to the standard output.
667 However, any router that has no_address_test set is bypassed.
668 This can make -bt easier to use for genuine routing tests if
669 your first router passes everything to a scanner program.
670
671 The return code is 2 if any address failed outright; it is 1
672 if no address failed outright but at least one could not be
673 resolved for some reason. Return code 0 is given only when
674 all addresses succeed.
675
676 Note: When actually delivering a message, Exim removes dupli‐
677 cate recipient addresses after routing is complete, so that
678 only one delivery takes place. This does not happen when
679 testing with -bt; the full results of routing are always
680 shown.
681
682 Warning: -bt can only do relatively simple testing. If any of
683 the routers in the configuration makes any tests on the
684 sender address of a message, you can use the -f option to set
685 an appropriate sender when running -bt tests. Without it, the
686 sender is assumed to be the calling user at the default qual‐
687 ifying domain. However, if you have set up (for example)
688 routers whose behaviour depends on the contents of an incom‐
689 ing message, you cannot test those conditions using -bt. The
690 -N option provides a possible way of doing such tests.
691
692 -bV This option causes Exim to write the current version number,
693 compilation number, and compilation date of the exim binary
694 to the standard output. It also lists the DBM library that
695 is being used, the optional modules (such as specific lookup
696 types), the drivers that are included in the binary, and the
697 name of the runtime configuration file that is in use.
698
699 As part of its operation, -bV causes Exim to read and syntax
700 check its configuration file. However, this is a static check
701 only. It cannot check values that are to be expanded. For
702 example, although a misspelt ACL verb is detected, an error
703 in the verb's arguments is not. You cannot rely on -bV alone
704 to discover (for example) all the typos in the configuration;
705 some realistic testing is needed. The -bh and -N options pro‐
706 vide more dynamic testing facilities.
707
708 -bv This option runs Exim in address verification mode, in which
709 each argument is taken as a recipient address to be verified
710 by the routers. (This does not involve any verification call‐
711 outs). During normal operation, verification happens mostly
712 as a consequence processing a verify condition in an ACL. If
713 you want to test an entire ACL, possibly including callouts,
714 see the -bh and -bhc options.
715
716 If verification fails, and the caller is not an admin user,
717 no details of the failure are output, because these might
718 contain sensitive information such as usernames and passwords
719 for database lookups.
720
721 If no arguments are given, Exim runs in an interactive man‐
722 ner, prompting with a right angle bracket for addresses to be
723 verified.
724
725 Unlike the -be test option, you cannot arrange for Exim to
726 use the readline() function, because it is running as exim
727 and there are security issues.
728
729 Verification differs from address testing (the -bt option) in
730 that routers that have no_verify set are skipped, and if the
731 address is accepted by a router that has fail_verify set,
732 verification fails. The address is verified as a recipient if
733 -bv is used; to test verification for a sender address, -bvs
734 should be used.
735
736 If the -v option is not set, the output consists of a single
737 line for each address, stating whether it was verified or
738 not, and giving a reason in the latter case. Without -v, gen‐
739 erating more than one address by redirection causes verifica‐
740 tion to end successfully, without considering the generated
741 addresses. However, if just one address is generated, pro‐
742 cessing continues, and the generated address must verify suc‐
743 cessfully for the overall verification to succeed.
744
745 When -v is set, more details are given of how the address has
746 been handled, and in the case of address redirection, all the
747 generated addresses are also considered. Verification may
748 succeed for some and fail for others.
749
750 The return code is 2 if any address failed outright; it is 1
751 if no address failed outright but at least one could not be
752 resolved for some reason. Return code 0 is given only when
753 all addresses succeed.
754
755 If any of the routers in the configuration makes any tests on
756 the sender address of a message, you should use the -f option
757 to set an appropriate sender when running -bv tests. Without
758 it, the sender is assumed to be the calling user at the
759 default qualifying domain.
760
761 -bvs This option acts like -bv, but verifies the address as a
762 sender rather than a recipient address. This affects any
763 rewriting and qualification that might happen.
764
765 -bw This option runs Exim as a daemon, awaiting incoming SMTP
766 connections, similarly to the -bd option. All port specifi‐
767 cations on the command-line and in the configuration file are
768 ignored. Queue-running may not be specified.
769
770 In this mode, Exim expects to be passed a socket as fd 0
771 (stdin) which is listening for connections. This permits the
772 system to start up and have inetd (or equivalent) listen on
773 the SMTP ports, starting an Exim daemon for each port only
774 when the first connection is received.
775
776 If the option is given as -bw<time> then the time is a time‐
777 out, after which the daemon will exit, which should cause
778 inetd to listen once more.
779
780 -C <filelist>
781 This option causes Exim to find the runtime configuration
782 file from the given list instead of from the list specified
783 by the CONFIGURE_FILE compile-time setting. Usually, the list
784 will consist of just a single filename, but it can be a
785 colon-separated list of names. In this case, the first file
786 that exists is used. Failure to open an existing file stops
787 Exim from proceeding any further along the list, and an error
788 is generated.
789
790 When this option is used by a caller other than root, and the
791 list is different from the compiled-in list, Exim gives up
792 its root privilege immediately, and runs with the real and
793 effective uid and gid set to those of the caller. However,
794 if a TRUSTED_CONFIG_LIST file is defined in Local/Makefile,
795 that file contains a list of full pathnames, one per line,
796 for configuration files which are trusted. Root privilege is
797 retained for any configuration file so listed, as long as the
798 caller is the Exim user (or the user specified in the CONFIG‐
799 URE_OWNER option, if any), and as long as the configuration
800 file is not writeable by inappropriate users or groups.
801
802 Leaving TRUSTED_CONFIG_LIST unset precludes the possibility
803 of testing a configuration using -C right through message
804 reception and delivery, even if the caller is root. The
805 reception works, but by that time, Exim is running as the
806 Exim user, so when it re-executes to regain privilege for the
807 delivery, the use of -C causes privilege to be lost. However,
808 root can test reception and delivery using two separate com‐
809 mands (one to put a message in the queue, using -odq, and
810 another to do the delivery, using -M).
811
812 If ALT_CONFIG_PREFIX is defined in Local/Makefile, it speci‐
813 fies a prefix string with which any file named in a -C com‐
814 mand line option must start. In addition, the filename must
815 not contain the sequence /../. However, if the value of the
816 -C option is identical to the value of CONFIGURE_FILE in
817 Local/Makefile, Exim ignores -C and proceeds as usual. There
818 is no default setting for ALT_CONFIG_PREFIX; when it is
819 unset, any filename can be used with -C.
820
821 ALT_CONFIG_PREFIX can be used to confine alternative configu‐
822 ration files to a directory to which only root has access.
823 This prevents someone who has broken into the Exim account
824 from running a privileged Exim with an arbitrary configura‐
825 tion file.
826
827 The -C facility is useful for ensuring that configuration
828 files are syntactically correct, but cannot be used for test
829 deliveries, unless the caller is privileged, or unless it is
830 an exotic configuration that does not require privilege. No
831 check is made on the owner or group of the files specified by
832 this option.
833
834 -D<macro>=<value>
835 This option can be used to override macro definitions in the
836 configuration file. However, like -C, if it is used by an
837 unprivileged caller, it causes Exim to give up its root priv‐
838 ilege. If DISABLE_D_OPTION is defined in Local/Makefile, the
839 use of -D is completely disabled, and its use causes an imme‐
840 diate error exit.
841
842 If WHITELIST_D_MACROS is defined in Local/Makefile then it
843 should be a colon-separated list of macros which are consid‐
844 ered safe and, if -D only supplies macros from this list, and
845 the values are acceptable, then Exim will not give up root
846 privilege if the caller is root, the Exim run-time user, or
847 the CONFIGURE_OWNER, if set. This is a transition mechanism
848 and is expected to be removed in the future. Acceptable val‐
849 ues for the macros satisfy the regexp: ^[A-Za-z0-9_/.-]*$
850
851 The entire option (including equals sign if present) must all
852 be within one command line item. -D can be used to set the
853 value of a macro to the empty string, in which case the
854 equals sign is optional. These two commands are synonymous:
855
856 exim -DABC ...
857 exim -DABC= ...
858
859 To include spaces in a macro definition item, quotes must be
860 used. If you use quotes, spaces are permitted around the
861 macro name and the equals sign. For example:
862
863 exim '-D ABC = something' ...
864
865 -D may be repeated up to 10 times on a command line. Only
866 macro names up to 22 letters long can be set.
867
868 -d<debug options>
869 This option causes debugging information to be written to the
870 standard error stream. It is restricted to admin users
871 because debugging output may show database queries that con‐
872 tain password information. Also, the details of users' filter
873 files should be protected. If a non-admin user uses -d, Exim
874 writes an error message to the standard error stream and
875 exits with a non-zero return code.
876
877 When -d is used, -v is assumed. If -d is given on its own, a
878 lot of standard debugging data is output. This can be
879 reduced, or increased to include some more rarely needed
880 information, by directly following -d with a string made up
881 of names preceded by plus or minus characters. These add or
882 remove sets of debugging data, respectively. For example,
883 -d+filter adds filter debugging, whereas -d-all+filter
884 selects only filter debugging. Note that no spaces are
885 allowed in the debug setting. The available debugging cate‐
886 gories are:
887
888 acl ACL interpretation
889 auth authenticators
890 deliver general delivery logic
891 dns DNS lookups (see also resolver)
892 dnsbl DNS black list (aka RBL) code
893 exec arguments for execv() calls
894 expand detailed debugging for string expansions
895 filter filter handling
896 hints_lookup hints data lookups
897 host_lookup all types of name-to-IP address handling
898 ident ident lookup
899 interface lists of local interfaces
900 lists matching things in lists
901 load system load checks
902 local_scan can be used by local_scan()
903 lookup general lookup code and all lookups
904 memory memory handling
905 noutf8 modifier: avoid UTF-8 line-drawing
906 pid modifier: add pid to debug output lines
907 process_info setting info for the process log
908 queue_run queue runs
909 receive general message reception logic
910 resolver turn on the DNS resolver's debugging output
911 retry retry handling
912 rewrite address rewriting
913 route address routing
914 timestamp modifier: add timestamp to debug output
915 lines
916 tls TLS logic
917 transport transports
918 uid changes of uid/gid and looking up uid/gid
919 verify address verification logic
920 all almost all of the above (see below), and
921 also -v
922
923 The all option excludes memory when used as +all, but
924 includes it for -all. The reason for this is that +all is
925 something that people tend to use when generating debug out‐
926 put for Exim maintainers. If +memory is included, an awful
927 lot of output that is very rarely of interest is generated,
928 so it now has to be explicitly requested. However, -all does
929 turn everything off.
930
931 The resolver option produces output only if the DNS resolver
932 was compiled with DEBUG enabled. This is not the case in some
933 operating systems. Also, unfortunately, debugging output from
934 the DNS resolver is written to stdout rather than stderr.
935
936 The default (-d with no argument) omits expand, filter,
937 interface, load, memory, pid, resolver, and timestamp. How‐
938 ever, the pid selector is forced when debugging is turned on
939 for a daemon, which then passes it on to any re-executed
940 Exims. Exim also automatically adds the pid to debug lines
941 when several remote deliveries are run in parallel.
942
943 The timestamp selector causes the current time to be inserted
944 at the start of all debug output lines. This can be useful
945 when trying to track down delays in processing. The noutf8
946 selector disables the use of UTF-8 line-drawing characters to
947 group related information. When disabled. ascii-art is used
948 instead. Using the +all option does not set this modifier,
949
950 If the debug_print option is set in any driver, it produces
951 output whenever any debugging is selected, or if -v is used.
952
953 -dd<debug options>
954 This option behaves exactly like -d except when used on a
955 command that starts a daemon process. In that case, debugging
956 is turned off for the subprocesses that the daemon creates.
957 Thus, it is useful for monitoring the behaviour of the daemon
958 without creating as much output as full debugging does.
959
960 -dropcr This is an obsolete option that is now a no-op. It used to
961 affect the way Exim handled CR and LF characters in incoming
962 messages.
963
964 -E This option specifies that an incoming message is a
965 locally-generated delivery failure report. It is used inter‐
966 nally by Exim when handling delivery failures and is not
967 intended for external use. Its only effect is to stop Exim
968 generating certain messages to the postmaster, as otherwise
969 message cascades could occur in some situations. As part of
970 the same option, a message id may follow the characters -E.
971 If it does, the log entry for the receipt of the new message
972 contains the id, following "R=", as a cross-reference.
973
974 -ex There are a number of Sendmail options starting with -oe
975 which seem to be called by various programs without the lead‐
976 ing o in the option. For example, the vacation program uses
977 -eq. Exim treats all options of the form -ex as synonymous
978 with the corresponding -oex options.
979
980 -F <string>
981 This option sets the sender's full name for use when a
982 locally-generated message is being accepted. In the absence
983 of this option, the user's gecos entry from the password data
984 is used. As users are generally permitted to alter their
985 gecos entries, no security considerations are involved. White
986 space between -F and the <string> is optional.
987
988 -f <address>
989 This option sets the address of the envelope sender of a
990 locally-generated message (also known as the return path).
991 The option can normally be used only by a trusted user, but
992 untrusted_set_sender can be set to allow untrusted users to
993 use it.
994
995 Processes running as root or the Exim user are always
996 trusted. Other trusted users are defined by the trusted_users
997 or trusted_groups options. In the absence of -f, or if the
998 caller is not trusted, the sender of a local message is set
999 to the caller's login name at the default qualify domain.
1000
1001 There is one exception to the restriction on the use of -f:
1002 an empty sender can be specified by any user, trusted or not,
1003 to create a message that can never provoke a bounce. An empty
1004 sender can be specified either as an empty string, or as a
1005 pair of angle brackets with nothing between them, as in these
1006 examples of shell commands:
1007
1008 exim -f '<>' user@domain
1009 exim -f "" user@domain
1010
1011 In addition, the use of -f is not restricted when testing a
1012 filter file with -bf or when testing or verifying addresses
1013 using the -bt or -bv options.
1014
1015 Allowing untrusted users to change the sender address does
1016 not of itself make it possible to send anonymous mail. Exim
1017 still checks that the From: header refers to the local user,
1018 and if it does not, it adds a Sender: header, though this can
1019 be overridden by setting no_local_from_check.
1020
1021 White space between -f and the <address> is optional (that
1022 is, they can be given as two arguments or one combined argu‐
1023 ment). The sender of a locally-generated message can also be
1024 set (when permitted) by an initial "From " line in the mes‐
1025 sage - see the description of -bm above - but if -f is also
1026 present, it overrides "From ".
1027
1028 -G This option is equivalent to an ACL applying:
1029
1030 control = suppress_local_fixups
1031
1032 for every message received. Note that Sendmail will complain
1033 about such bad formatting, where Exim silently just does not
1034 fix it up. This may change in future.
1035
1036 As this affects audit information, the caller must be a
1037 trusted user to use this option.
1038
1039 -h <number>
1040 This option is accepted for compatibility with Sendmail, but
1041 has no effect. (In Sendmail it overrides the "hop count"
1042 obtained by counting Received: headers.)
1043
1044 -i This option, which has the same effect as -oi, specifies that
1045 a dot on a line by itself should not terminate an incoming,
1046 non-SMTP message. I can find no documentation for this option
1047 in Solaris 2.4 Sendmail, but the mailx command in Solaris 2.4
1048 uses it. See also -ti.
1049
1050 -L <tag> This option is equivalent to setting syslog_processname in
1051 the config file and setting log_file_path to syslog. Its use
1052 is restricted to administrators. The configuration file has
1053 to be read and parsed, to determine access rights, before
1054 this is set and takes effect, so early configuration file
1055 errors will not honour this flag.
1056
1057 The tag should not be longer than 32 characters.
1058
1059 -M <message id> <message id> ...
1060 This option requests Exim to run a delivery attempt on each
1061 message in turn. If any of the messages are frozen, they are
1062 automatically thawed before the delivery attempt. The set‐
1063 tings of queue_domains, queue_smtp_domains, and hold_domains
1064 are ignored.
1065
1066 Retry hints for any of the addresses are overridden - Exim
1067 tries to deliver even if the normal retry time has not yet
1068 been reached. This option requires the caller to be an admin
1069 user. However, there is an option called prod_requires_admin
1070 which can be set false to relax this restriction (and also
1071 the same requirement for the -q, -R, and -S options).
1072
1073 The deliveries happen synchronously, that is, the original
1074 Exim process does not terminate until all the delivery
1075 attempts have finished. No output is produced unless there is
1076 a serious error. If you want to see what is happening, use
1077 the -v option as well, or inspect Exim's main log.
1078
1079 -Mar <message id> <address> <address> ...
1080 This option requests Exim to add the addresses to the list of
1081 recipients of the message ("ar" for "add recipients"). The
1082 first argument must be a message id, and the remaining ones
1083 must be email addresses. However, if the message is active
1084 (in the middle of a delivery attempt), it is not altered.
1085 This option can be used only by an admin user.
1086
1087 -MC <transport> <hostname> <sequence number> <message id>
1088 This option is not intended for use by external callers. It
1089 is used internally by Exim to invoke another instance of
1090 itself to deliver a waiting message using an existing SMTP
1091 connection, which is passed as the standard input. This must
1092 be the final option, and the caller must be root or the Exim
1093 user in order to use it.
1094
1095 -MCA This option is not intended for use by external callers. It
1096 is used internally by Exim in conjunction with the -MC
1097 option. It signifies that the connection to the remote host
1098 has been authenticated.
1099
1100 -MCD This option is not intended for use by external callers. It
1101 is used internally by Exim in conjunction with the -MC
1102 option. It signifies that the remote host supports the ESMTP
1103 DSN extension.
1104
1105 -MCG <queue name>
1106 This option is not intended for use by external callers. It
1107 is used internally by Exim in conjunction with the -MC
1108 option. It signifies that an alternate queue is used, named
1109 by the following argument.
1110
1111 -MCK This option is not intended for use by external callers. It
1112 is used internally by Exim in conjunction with the -MC
1113 option. It signifies that a remote host supports the ESMTP
1114 CHUNKING extension.
1115
1116 -MCP This option is not intended for use by external callers. It
1117 is used internally by Exim in conjunction with the -MC
1118 option. It signifies that the server to which Exim is con‐
1119 nected supports pipelining.
1120
1121 -MCQ <process id> <pipe fd>
1122 This option is not intended for use by external callers. It
1123 is used internally by Exim in conjunction with the -MC option
1124 when the original delivery was started by a queue runner. It
1125 passes on the process id of the queue runner, together with
1126 the file descriptor number of an open pipe. Closure of the
1127 pipe signals the final completion of the sequence of pro‐
1128 cesses that are passing messages through the same SMTP con‐
1129 nection.
1130
1131 -MCS This option is not intended for use by external callers. It
1132 is used internally by Exim in conjunction with the -MC
1133 option, and passes on the fact that the SMTP SIZE option
1134 should be used on messages delivered down the existing con‐
1135 nection.
1136
1137 -MCT This option is not intended for use by external callers. It
1138 is used internally by Exim in conjunction with the -MC
1139 option, and passes on the fact that the host to which Exim is
1140 connected supports TLS encryption.
1141
1142 -MCt <IP address> <port> <cipher>
1143 This option is not intended for use by external callers. It
1144 is used internally by Exim in conjunction with the -MC
1145 option, and passes on the fact that the connection is being
1146 proxied by a parent process for handling TLS encryption. The
1147 arguments give the local address and port being proxied, and
1148 the TLS cipher.
1149
1150 -Mc <message id> <message id> ...
1151 This option requests Exim to run a delivery attempt on each
1152 message, in turn, but unlike the -M option, it does check for
1153 retry hints, and respects any that are found. This option is
1154 not very useful to external callers. It is provided mainly
1155 for internal use by Exim when it needs to re-invoke itself in
1156 order to regain root privilege for a delivery. However, -Mc
1157 can be useful when testing, in order to run a delivery that
1158 respects retry times and other options such as hold_domains
1159 that are overridden when -M is used. Such a delivery does not
1160 count as a queue run. If you want to run a specific delivery
1161 as if in a queue run, you should use -q with a message id
1162 argument. A distinction between queue run deliveries and
1163 other deliveries is made in one or two places.
1164
1165 -Mes <message id> <address>
1166 This option requests Exim to change the sender address in the
1167 message to the given address, which must be a fully qualified
1168 address or "<>" ("es" for "edit sender"). There must be
1169 exactly two arguments. The first argument must be a message
1170 id, and the second one an email address. However, if the mes‐
1171 sage is active (in the middle of a delivery attempt), its
1172 status is not altered. This option can be used only by an
1173 admin user.
1174
1175 -Mf <message id> <message id> ...
1176 This option requests Exim to mark each listed message as
1177 "frozen". This prevents any delivery attempts taking place
1178 until the message is "thawed", either manually or as a result
1179 of the auto_thaw configuration option. However, if any of
1180 the messages are active (in the middle of a delivery
1181 attempt), their status is not altered. This option can be
1182 used only by an admin user.
1183
1184 -Mg <message id> <message id> ...
1185 This option requests Exim to give up trying to deliver the
1186 listed messages, including any that are frozen. However, if
1187 any of the messages are active, their status is not altered.
1188 For non-bounce messages, a delivery error message is sent to
1189 the sender, containing the text "cancelled by administrator".
1190 Bounce messages are just discarded. This option can be used
1191 only by an admin user.
1192
1193 -Mmad <message id> <message id> ...
1194 This option requests Exim to mark all the recipient addresses
1195 in the messages as already delivered ("mad" for "mark all
1196 delivered"). However, if any message is active (in the middle
1197 of a delivery attempt), its status is not altered. This
1198 option can be used only by an admin user.
1199
1200 -Mmd <message id> <address> <address> ...
1201 This option requests Exim to mark the given addresses as
1202 already delivered ("md" for "mark delivered"). The first
1203 argument must be a message id, and the remaining ones must be
1204 email addresses. These are matched to recipient addresses in
1205 the message in a case-sensitive manner. If the message is
1206 active (in the middle of a delivery attempt), its status is
1207 not altered. This option can be used only by an admin user.
1208
1209 -Mrm <message id> <message id> ...
1210 This option requests Exim to remove the given messages from
1211 the queue. No bounce messages are sent; each message is sim‐
1212 ply forgotten. However, if any of the messages are active,
1213 their status is not altered. This option can be used only by
1214 an admin user or by the user who originally caused the mes‐
1215 sage to be placed in the queue.
1216
1217 -Mset <message id>
1218 This option is useful only in conjunction with -be (that is,
1219 when testing string expansions). Exim loads the given message
1220 from its spool before doing the test expansions, thus setting
1221 message-specific variables such as $message_size and the
1222 header variables. The $recipients variable is made available.
1223 This feature is provided to make it easier to test expansions
1224 that make use of these variables. However, this option can be
1225 used only by an admin user. See also -bem.
1226
1227 -Mt <message id> <message id> ...
1228 This option requests Exim to "thaw" any of the listed mes‐
1229 sages that are "frozen", so that delivery attempts can
1230 resume. However, if any of the messages are active, their
1231 status is not altered. This option can be used only by an
1232 admin user.
1233
1234 -Mvb <message id>
1235 This option causes the contents of the message body (-D)
1236 spool file to be written to the standard output. This option
1237 can be used only by an admin user.
1238
1239 -Mvc <message id>
1240 This option causes a copy of the complete message (header
1241 lines plus body) to be written to the standard output in RFC
1242 2822 format. This option can be used only by an admin user.
1243
1244 -Mvh <message id>
1245 This option causes the contents of the message headers (-H)
1246 spool file to be written to the standard output. This option
1247 can be used only by an admin user.
1248
1249 -Mvl <message id>
1250 This option causes the contents of the message log spool file
1251 to be written to the standard output. This option can be used
1252 only by an admin user.
1253
1254 -m This is apparently a synonym for -om that is accepted by
1255 Sendmail, so Exim treats it that way too.
1256
1257 -N This is a debugging option that inhibits delivery of a mes‐
1258 sage at the transport level. It implies -v. Exim goes through
1259 many of the motions of delivery - it just doesn't actually
1260 transport the message, but instead behaves as if it had suc‐
1261 cessfully done so. However, it does not make any updates to
1262 the retry database, and the log entries for deliveries are
1263 flagged with "*>" rather than "=>".
1264
1265 Because -N discards any message to which it applies, only
1266 root or the Exim user are allowed to use it with -bd, -q, -R
1267 or -M. In other words, an ordinary user can use it only when
1268 supplying an incoming message to which it will apply.
1269 Although transportation never fails when -N is set, an
1270 address may be deferred because of a configuration problem on
1271 a transport, or a routing problem. Once -N has been used for
1272 a delivery attempt, it sticks to the message, and applies to
1273 any subsequent delivery attempts that may happen for that
1274 message.
1275
1276 -n This option is interpreted by Sendmail to mean "no aliasing".
1277 For normal modes of operation, it is ignored by Exim. When
1278 combined with -bP it makes the output more terse (suppresses
1279 option names, environment values and config pretty printing).
1280
1281 -O <data> This option is interpreted by Sendmail to mean set option. It
1282 is ignored by Exim.
1283
1284 -oA <file name>
1285 This option is used by Sendmail in conjunction with -bi to
1286 specify an alternative alias filename. Exim handles -bi dif‐
1287 ferently; see the description above.
1288
1289 -oB <n> This is a debugging option which limits the maximum number of
1290 messages that can be delivered down one SMTP connection,
1291 overriding the value set in any smtp transport. If <n> is
1292 omitted, the limit is set to 1.
1293
1294 -odb This option applies to all modes in which Exim accepts incom‐
1295 ing messages, including the listening daemon. It requests
1296 "background" delivery of such messages, which means that the
1297 accepting process automatically starts a delivery process for
1298 each message received, but does not wait for the delivery
1299 processes to finish.
1300
1301 When all the messages have been received, the reception
1302 process exits, leaving the delivery processes to finish in
1303 their own time. The standard output and error streams are
1304 closed at the start of each delivery process. This is the
1305 default action if none of the -od options are present.
1306
1307 If one of the queueing options in the configuration file
1308 (queue_only or queue_only_file, for example) is in effect,
1309 -odb overrides it if queue_only_override is set true, which
1310 is the default setting. If queue_only_override is set false,
1311 -odb has no effect.
1312
1313 -odf This option requests "foreground" (synchronous) delivery when
1314 Exim has accepted a locally-generated message. (For the dae‐
1315 mon it is exactly the same as -odb.) A delivery process is
1316 automatically started to deliver the message, and Exim waits
1317 for it to complete before proceeding.
1318
1319 The original Exim reception process does not finish until the
1320 delivery process for the final message has ended. The stan‐
1321 dard error stream is left open during deliveries.
1322
1323 However, like -odb, this option has no effect if
1324 queue_only_override is false and one of the queueing options
1325 in the configuration file is in effect.
1326
1327 If there is a temporary delivery error during foreground
1328 delivery, the message is left in the queue for later deliv‐
1329 ery, and the original reception process exits.
1330
1331 -odi This option is synonymous with -odf. It is provided for com‐
1332 patibility with Sendmail.
1333
1334 -odq This option applies to all modes in which Exim accepts incom‐
1335 ing messages, including the listening daemon. It specifies
1336 that the accepting process should not automatically start a
1337 delivery process for each message received. Messages are
1338 placed in the queue, and remain there until a subsequent
1339 queue runner process encounters them. There are several con‐
1340 figuration options (such as queue_only) that can be used to
1341 queue incoming messages under certain conditions. This option
1342 overrides all of them and also -odqs. It always forces queue‐
1343 ing.
1344
1345 -odqs This option is a hybrid between -odb/-odi and -odq. However,
1346 like -odb and -odi, this option has no effect if
1347 queue_only_override is false and one of the queueing options
1348 in the configuration file is in effect.
1349
1350 When -odqs does operate, a delivery process is started for
1351 each incoming message, in the background by default, but in
1352 the foreground if -odi is also present. The recipient
1353 addresses are routed, and local deliveries are done in the
1354 normal way. However, if any SMTP deliveries are required,
1355 they are not done at this time, so the message remains in the
1356 queue until a subsequent queue runner process encounters it.
1357 Because routing was done, Exim knows which messages are wait‐
1358 ing for which hosts, and so a number of messages for the same
1359 host can be sent in a single SMTP connection. The
1360 queue_smtp_domains configuration option has the same effect
1361 for specific domains. See also the -qq option.
1362
1363 -oee If an error is detected while a non-SMTP message is being
1364 received (for example, a malformed address), the error is
1365 reported to the sender in a mail message.
1366
1367 Provided this error message is successfully sent, the Exim
1368 receiving process exits with a return code of zero. If not,
1369 the return code is 2 if the problem is that the original mes‐
1370 sage has no recipients, or 1 for any other error. This is
1371 the default -oex option if Exim is called as rmail.
1372
1373 -oem This is the same as -oee, except that Exim always exits with
1374 a non-zero return code, whether or not the error message was
1375 successfully sent. This is the default -oex option, unless
1376 Exim is called as rmail.
1377
1378 -oep If an error is detected while a non-SMTP message is being
1379 received, the error is reported by writing a message to the
1380 standard error file (stderr). The return code is 1 for all
1381 errors.
1382
1383 -oeq This option is supported for compatibility with Sendmail, but
1384 has the same effect as -oep.
1385
1386 -oew This option is supported for compatibility with Sendmail, but
1387 has the same effect as -oem.
1388
1389 -oi This option, which has the same effect as -i, specifies that
1390 a dot on a line by itself should not terminate an incoming,
1391 non-SMTP message. Otherwise, a single dot does terminate,
1392 though Exim does no special processing for other lines that
1393 start with a dot. This option is set by default if Exim is
1394 called as rmail. See also -ti.
1395
1396 -oitrue This option is treated as synonymous with -oi.
1397
1398 -oMa <host address>
1399 A number of options starting with -oM can be used to set val‐
1400 ues associated with remote hosts on locally-submitted mes‐
1401 sages (that is, messages not received over TCP/IP). These
1402 options can be used by any caller in conjunction with the
1403 -bh, -be, -bf, -bF, -bt, or -bv testing options. In other
1404 circumstances, they are ignored unless the caller is trusted.
1405
1406 The -oMa option sets the sender host address. This may
1407 include a port number at the end, after a full stop (period).
1408 For example:
1409
1410 exim -bs -oMa 10.9.8.7.1234
1411
1412 An alternative syntax is to enclose the IP address in square
1413 brackets, followed by a colon and the port number:
1414
1415 exim -bs -oMa [10.9.8.7]:1234
1416
1417 The IP address is placed in the $sender_host_address vari‐
1418 able, and the port, if present, in $sender_host_port. If both
1419 -oMa and -bh are present on the command line, the sender host
1420 IP address is taken from whichever one is last.
1421
1422 -oMaa <name>
1423 See -oMa above for general remarks about the -oM options. The
1424 -oMaa option sets the value of $sender_host_authenticated
1425 (the authenticator name). This option can be used with -bh
1426 and -bs to set up an authenticated SMTP session without actu‐
1427 ally using the SMTP AUTH command.
1428
1429 -oMai <string>
1430 See -oMa above for general remarks about the -oM options. The
1431 -oMai option sets the value of $authenticated_id (the id that
1432 was authenticated). This overrides the default value (the
1433 caller's login id, except with -bh, where there is no
1434 default) for messages from local sources.
1435
1436 -oMas <address>
1437 See -oMa above for general remarks about the -oM options. The
1438 -oMas option sets the authenticated sender value in $authen‐
1439 ticated_sender. It overrides the sender address that is cre‐
1440 ated from the caller's login id for messages from local
1441 sources, except when -bh is used, when there is no default.
1442 For both -bh and -bs, an authenticated sender that is speci‐
1443 fied on a MAIL command overrides this value.
1444
1445 -oMi <interface address>
1446 See -oMa above for general remarks about the -oM options. The
1447 -oMi option sets the IP interface address value. A port num‐
1448 ber may be included, using the same syntax as for -oMa. The
1449 interface address is placed in $received_ip_address and the
1450 port number, if present, in $received_port.
1451
1452 -oMm <message reference>
1453 See -oMa above for general remarks about the -oM options. The
1454 -oMm option sets the message reference, e.g. message-id, and
1455 is logged during delivery. This is useful when some kind of
1456 audit trail is required to tie messages together. The format
1457 of the message reference is checked and will abort if the
1458 format is invalid. The option will only be accepted if exim
1459 is running in trusted mode, not as any regular user.
1460
1461 The best example of a message reference is when Exim sends a
1462 bounce message. The message reference is the message-id of
1463 the original message for which Exim is sending the bounce.
1464
1465 -oMr <protocol name>
1466 See -oMa above for general remarks about the -oM options. The
1467 -oMr option sets the received protocol value that is stored
1468 in $received_protocol. However, it does not apply (and is
1469 ignored) when -bh or -bs is used. For -bh, the protocol is
1470 forced to one of the standard SMTP protocol names. For -bs,
1471 the protocol is always "local-" followed by one of those same
1472 names. For -bS (batched SMTP) however, the protocol can be
1473 set by -oMr. Repeated use of this option is not supported.
1474
1475 -oMs <host name>
1476 See -oMa above for general remarks about the -oM options. The
1477 -oMs option sets the sender host name in $sender_host_name.
1478 When this option is present, Exim does not attempt to look up
1479 a host name from an IP address; it uses the name it is given.
1480
1481 -oMt <ident string>
1482 See -oMa above for general remarks about the -oM options. The
1483 -oMt option sets the sender ident value in $sender_ident. The
1484 default setting for local callers is the login id of the
1485 calling process, except when -bh is used, when there is no
1486 default.
1487
1488 -om In Sendmail, this option means "me too", indicating that the
1489 sender of a message should receive a copy of the message if
1490 the sender appears in an alias expansion. Exim always does
1491 this, so the option does nothing.
1492
1493 -oo This option is ignored. In Sendmail it specifies "old style
1494 headers", whatever that means.
1495
1496 -oP <path>
1497 This option is useful only in conjunction with -bd or -q with
1498 a time value. The option specifies the file to which the
1499 process id of the daemon is written. When -oX is used with
1500 -bd, or when -q with a time is used without -bd, this is the
1501 only way of causing Exim to write a pid file, because in
1502 those cases, the normal pid file is not used.
1503
1504 -or <time>
1505 This option sets a timeout value for incoming non-SMTP mes‐
1506 sages. If it is not set, Exim will wait forever for the stan‐
1507 dard input. The value can also be set by the receive_timeout
1508 option.
1509
1510 -os <time>
1511 This option sets a timeout value for incoming SMTP messages.
1512 The timeout applies to each SMTP command and block of data.
1513 The value can also be set by the smtp_receive_timeout option;
1514 it defaults to 5 minutes.
1515
1516 -ov This option has exactly the same effect as -v.
1517
1518 -oX <number or string>
1519 This option is relevant only when the -bd (start listening
1520 daemon) option is also given. It controls which ports and
1521 interfaces the daemon uses. When -oX is used to start a dae‐
1522 mon, no pid file is written unless -oP is also present to
1523 specify a pid filename.
1524
1525 -pd This option applies when an embedded Perl interpreter is
1526 linked with Exim. It overrides the setting of the
1527 perl_at_start option, forcing the starting of the interpreter
1528 to be delayed until it is needed.
1529
1530 -ps This option applies when an embedded Perl interpreter is
1531 linked with Exim. It overrides the setting of the
1532 perl_at_start option, forcing the starting of the interpreter
1533 to occur as soon as Exim is started.
1534
1535 -p<rval>:<sval>
1536 For compatibility with Sendmail, this option is equivalent to
1537
1538 -oMr <rval> -oMs <sval>
1539
1540 It sets the incoming protocol and host name (for trusted
1541 callers). The host name and its colon can be omitted when
1542 only the protocol is to be set. Note the Exim already has
1543 two private options, -pd and -ps, that refer to embedded
1544 Perl. It is therefore impossible to set a protocol value of d
1545 or s using this option (but that does not seem a real limita‐
1546 tion). Repeated use of this option is not supported.
1547
1548 -q This option is normally restricted to admin users. However,
1549 there is a configuration option called prod_requires_admin
1550 which can be set false to relax this restriction (and also
1551 the same requirement for the -M, -R, and -S options).
1552
1553 If other commandline options do not specify an action, the -q
1554 option starts one queue runner process. This scans the queue
1555 of waiting messages, and runs a delivery process for each one
1556 in turn. It waits for each delivery process to finish before
1557 starting the next one. A delivery process may not actually do
1558 any deliveries if the retry times for the addresses have not
1559 been reached. Use -qf (see below) if you want to override
1560 this.
1561
1562 If the delivery process spawns other processes to deliver
1563 other messages down passed SMTP connections, the queue runner
1564 waits for these to finish before proceeding.
1565
1566 When all the queued messages have been considered, the origi‐
1567 nal queue runner process terminates. In other words, a single
1568 pass is made over the waiting mail, one message at a time.
1569 Use -q with a time (see below) if you want this to be
1570 repeated periodically.
1571
1572 Exim processes the waiting messages in an unpredictable
1573 order. It isn't very random, but it is likely to be different
1574 each time, which is all that matters. If one particular mes‐
1575 sage screws up a remote MTA, other messages to the same MTA
1576 have a chance of getting through if they get tried first.
1577
1578 It is possible to cause the messages to be processed in lexi‐
1579 cal message id order, which is essentially the order in which
1580 they arrived, by setting the queue_run_in_order option, but
1581 this is not recommended for normal use.
1582
1583 -q<qflags>
1584 The -q option may be followed by one or more flag letters
1585 that change its behaviour. They are all optional, but if more
1586 than one is present, they must appear in the correct order.
1587 Each flag is described in a separate item below.
1588
1589 -qq... An option starting with -qq requests a two-stage queue run.
1590 In the first stage, the queue is scanned as if the
1591 queue_smtp_domains option matched every domain. Addresses are
1592 routed, local deliveries happen, but no remote transports are
1593 run.
1594
1595 The hints database that remembers which messages are waiting
1596 for specific hosts is updated, as if delivery to those hosts
1597 had been deferred. After this is complete, a second, normal
1598 queue scan happens, with routing and delivery taking place as
1599 normal. Messages that are routed to the same host should
1600 mostly be delivered down a single SMTP connection because of
1601 the hints that were set up during the first queue scan. This
1602 option may be useful for hosts that are connected to the
1603 Internet intermittently.
1604
1605 -q[q]i... If the i flag is present, the queue runner runs delivery pro‐
1606 cesses only for those messages that haven't previously been
1607 tried. (i stands for "initial delivery".) This can be helpful
1608 if you are putting messages in the queue using -odq and want
1609 a queue runner just to process the new messages.
1610
1611 -q[q][i]f...
1612 If one f flag is present, a delivery attempt is forced for
1613 each non-frozen message, whereas without f only those
1614 non-frozen addresses that have passed their retry times are
1615 tried.
1616
1617 -q[q][i]ff...
1618 If ff is present, a delivery attempt is forced for every mes‐
1619 sage, whether frozen or not.
1620
1621 -q[q][i][f[f]]l
1622 The l (the letter "ell") flag specifies that only local
1623 deliveries are to be done. If a message requires any remote
1624 deliveries, it remains in the queue for later delivery.
1625
1626 -q[q][i][f[f]][l][G<name>[/<time>]]]
1627 If the G flag and a name is present, the queue runner oper‐
1628 ates on the queue with the given name rather than the default
1629 queue. The name should not contain a / character. For a
1630 periodic queue run (see below) append to the name a slash and
1631 a time value.
1632
1633 If other commandline options specify an action, a -qG<name>
1634 option will specify a queue to operate on. For example:
1635
1636 exim -bp -qGquarantine
1637 mailq -qGquarantine
1638 exim -qGoffpeak -Rf @special.domain.example
1639
1640 -q<qflags> <start id> <end id>
1641 When scanning the queue, Exim can be made to skip over mes‐
1642 sages whose ids are lexically less than a given value by fol‐
1643 lowing the -q option with a starting message id. For example:
1644
1645 exim -q 0t5C6f-0000c8-00
1646
1647 Messages that arrived earlier than 0t5C6f-0000c8-00 are not
1648 inspected. If a second message id is given, messages whose
1649 ids are lexically greater than it are also skipped. If the
1650 same id is given twice, for example,
1651
1652 exim -q 0t5C6f-0000c8-00 0t5C6f-0000c8-00
1653
1654 just one delivery process is started, for that message. This
1655 differs from -M in that retry data is respected, and it also
1656 differs from -Mc in that it counts as a delivery from a queue
1657 run. Note that the selection mechanism does not affect the
1658 order in which the messages are scanned. There are also other
1659 ways of selecting specific sets of messages for delivery in a
1660 queue run - see -R and -S.
1661
1662 -q<qflags><time>
1663 When a time value is present, the -q option causes Exim to
1664 run as a daemon, starting a queue runner process at intervals
1665 specified by the given time value. This form of the -q option
1666 is commonly combined with the -bd option, in which case a
1667 single daemon process handles both functions. A common way of
1668 starting up a combined daemon at system boot time is to use a
1669 command such as
1670
1671 /usr/exim/bin/exim -bd -q30m
1672
1673 Such a daemon listens for incoming SMTP calls, and also
1674 starts a queue runner process every 30 minutes.
1675
1676 When a daemon is started by -q with a time value, but without
1677 -bd, no pid file is written unless one is explicitly
1678 requested by the -oP option.
1679
1680 -qR<rsflags> <string>
1681 This option is synonymous with -R. It is provided for Send‐
1682 mail compatibility.
1683
1684 -qS<rsflags> <string>
1685 This option is synonymous with -S.
1686
1687 -R<rsflags> <string>
1688 The <rsflags> may be empty, in which case the white space
1689 before the string is optional, unless the string is f, ff, r,
1690 rf, or rff, which are the possible values for <rsflags>.
1691 White space is required if <rsflags> is not empty.
1692
1693 This option is similar to -q with no time value, that is, it
1694 causes Exim to perform a single queue run, except that, when
1695 scanning the messages on the queue, Exim processes only those
1696 that have at least one undelivered recipient address contain‐
1697 ing the given string, which is checked in a case-independent
1698 way. If the <rsflags> start with r, <string> is interpreted
1699 as a regular expression; otherwise it is a literal string.
1700
1701 If you want to do periodic queue runs for messages with spe‐
1702 cific recipients, you can combine -R with -q and a time
1703 value. For example:
1704
1705 exim -q25m -R @special.domain.example
1706
1707 This example does a queue run for messages with recipients in
1708 the given domain every 25 minutes. Any additional flags that
1709 are specified with -q are applied to each queue run.
1710
1711 Once a message is selected for delivery by this mechanism,
1712 all its addresses are processed. For the first selected mes‐
1713 sage, Exim overrides any retry information and forces a
1714 delivery attempt for each undelivered address. This means
1715 that if delivery of any address in the first message is suc‐
1716 cessful, any existing retry information is deleted, and so
1717 delivery attempts for that address in subsequently selected
1718 messages (which are processed without forcing) will run. How‐
1719 ever, if delivery of any address does not succeed, the retry
1720 information is updated, and in subsequently selected mes‐
1721 sages, the failing address will be skipped.
1722
1723 If the <rsflags> contain f or ff, the delivery forcing
1724 applies to all selected messages, not just the first; frozen
1725 messages are included when ff is present.
1726
1727 The -R option makes it straightforward to initiate delivery
1728 of all messages to a given domain after a host has been down
1729 for some time. When the SMTP command ETRN is accepted by its
1730 ACL, its default effect is to run Exim with the -R option,
1731 but it can be configured to run an arbitrary command instead.
1732
1733 -r This is a documented (for Sendmail) obsolete alternative name
1734 for -f.
1735
1736 -S<rsflags> <string>
1737 This option acts like -R except that it checks the string
1738 against each message's sender instead of against the recipi‐
1739 ents. If -R is also set, both conditions must be met for a
1740 message to be selected. If either of the options has f or ff
1741 in its flags, the associated action is taken.
1742
1743 -Tqt <times>
1744 This is an option that is exclusively for use by the Exim
1745 testing suite. It is not recognized when Exim is run nor‐
1746 mally. It allows for the setting up of explicit "queue times"
1747 so that various warning/retry features can be tested.
1748
1749 -t When Exim is receiving a locally-generated, non-SMTP message
1750 on its standard input, the -t option causes the recipients of
1751 the message to be obtained from the To:, Cc:, and Bcc: header
1752 lines in the message instead of from the command arguments.
1753 The addresses are extracted before any rewriting takes place
1754 and the Bcc: header line, if present, is then removed.
1755
1756 If the command has any arguments, they specify addresses to
1757 which the message is not to be delivered. That is, the argu‐
1758 ment addresses are removed from the recipients list obtained
1759 from the headers. This is compatible with Smail 3 and in
1760 accordance with the documented behaviour of several versions
1761 of Sendmail, as described in man pages on a number of operat‐
1762 ing systems (e.g. Solaris 8, IRIX 6.5, HP-UX 11). However,
1763 some versions of Sendmail add argument addresses to those
1764 obtained from the headers, and the O'Reilly Sendmail book
1765 documents it that way. Exim can be made to add argument
1766 addresses instead of subtracting them by setting the option
1767 extract_addresses_remove_arguments false.
1768
1769 If there are any Resent- header lines in the message, Exim
1770 extracts recipients from all Resent-To:, Resent-Cc:, and
1771 Resent-Bcc: header lines instead of from To:, Cc:, and Bcc:.
1772 This is for compatibility with Sendmail and other MTAs.
1773 (Prior to release 4.20, Exim gave an error if -t was used in
1774 conjunction with Resent- header lines.)
1775
1776 RFC 2822 talks about different sets of Resent- header lines
1777 (for when a message is resent several times). The RFC also
1778 specifies that they should be added at the front of the mes‐
1779 sage, and separated by Received: lines. It is not at all
1780 clear how -t should operate in the present of multiple sets,
1781 nor indeed exactly what constitutes a "set". In practice, it
1782 seems that MUAs do not follow the RFC. The Resent- lines are
1783 often added at the end of the header, and if a message is
1784 resent more than once, it is common for the original set of
1785 Resent- headers to be renamed as X-Resent- when a new set is
1786 added. This removes any possible ambiguity.
1787
1788 -ti This option is exactly equivalent to -t -i. It is provided
1789 for compatibility with Sendmail.
1790
1791 -tls-on-connect
1792 This option is available when Exim is compiled with TLS sup‐
1793 port. It forces all incoming SMTP connections to behave as if
1794 the incoming port is listed in the tls_on_connect_ports
1795 option.
1796
1797 -U Sendmail uses this option for "initial message submission",
1798 and its documentation states that in future releases, it may
1799 complain about syntactically invalid messages rather than
1800 fixing them when this flag is not set. Exim ignores this
1801 option.
1802
1803 -v This option causes Exim to write information to the standard
1804 error stream, describing what it is doing. In particular, it
1805 shows the log lines for receiving and delivering a message,
1806 and if an SMTP connection is made, the SMTP dialogue is
1807 shown. Some of the log lines shown may not actually be writ‐
1808 ten to the log if the setting of log_selector discards them.
1809 Any relevant selectors are shown with each log line. If none
1810 are shown, the logging is unconditional.
1811
1812 -x AIX uses -x for a private purpose ("mail from a local mail
1813 program has National Language Support extended characters in
1814 the body of the mail item"). It sets -x when calling the MTA
1815 from its mail command. Exim ignores this option.
1816
1817 -X <logfile>
1818 This option is interpreted by Sendmail to cause debug infor‐
1819 mation to be sent to the named file. It is ignored by Exim.
1820
1821 -z <log-line>
1822 This option writes its argument to Exim's logfile. Use is
1823 restricted to administrators; the intent is for operational
1824 notes. Quotes should be used to maintain a multi-word item
1825 as a single argument, under most shells.
1826
1827
1829
1830 The full Exim specification, the Exim book, and the Exim wiki.
1831
1832
1833
1834 EXIM(8)