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