1EXIM(8)                     System Manager's Manual                    EXIM(8)
2
3
4

NAME

6       exim - a Mail Transfer Agent
7

SYNOPSIS

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

DESCRIPTION

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

DEFAULT ACTION

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

SETTING OPTIONS BY PROGRAM NAME

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

OPTIONS

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

SEE ALSO

1595
1596       The full Exim specification, the Exim book, and the Exim wiki.
1597
1598
1599
1600                                                                       EXIM(8)
Impressum