Penguin
Annotated edit history of exim(8) version 1, including all changes. View license author blame.
Rev Author # Line
1 perry 1 exim
2 !!!exim
3 NAME
4 SYNOPSIS
5 DESCRIPTION
6 LIMITATIONS
7 FEATURES
8 METHOD OF OPERATION
9 TRUSTED AND ADMIN USERS
10 OPTIONS
11 SEE ALSO
12 AUTHOR
13 ----
14 !!NAME
15
16
17 exim - Mail Transfer Agent
18 !!SYNOPSIS
19
20
21 __exim__ ''[[options] arguments ...''__
22 mailq__ ''[[options] arguments ...''__
23 rmail__ ''[[options] arguments ...''__
24 rsmtp__ ''[[options] arguments ...''__
25 runq__ ''[[options] arguments ...''__
26 sendmail__ ''[[options] arguments ...''
27 !!DESCRIPTION
28
29
30 __Exim__ is a mail transport agent (MTA) developed at the
31 University of Cambridge for use on Unix systems connected to
32 the Internet. It is freely available under the terms of the
33 GNU General Public Licence. In style it is similar to Smail
34 3, but its facilities are more extensive, and in particular
35 it has some defences against mail bombs and unsolicited junk
36 mail, in the form of options for refusing messages from
37 particular hosts, networks, or senders.
38
39
40 Exim's command line takes the standard Unix form of a
41 sequence of options, each starting with a hyphen character,
42 followed by a number of arguments. The options are
43 compatible with the main options of Sendmail, and there are
44 also some additional options, some of which are compatible
45 with Smail 3. Certain combinations of options do not make
46 sense, and provoke an error if used. The form of the
47 arguments depends on which options are set.
48
49
50 If Exim is called under the name mailq, it behaves as if the
51 option -bp were present before any other options. This is
52 for compatibility with some systems that contain a command
53 of that name in one of the standard libraries, symbolically
54 linked to /usr/lib/sendmail.
55
56
57 If Exim is called under the name rsmtp it behaves as if the
58 option -bS were present before any other options, for
59 compatibility with smail. The -bS option is used for reading
60 in a number of messages in batched SMTP format.
61
62
63 If Exim is called under the name rmail it behaves as if the
64 option -i were present before any other options, for
65 compatibility with smail. The -i option is used for reading
66 a message that should not be terminated by a dot on a line
67 by itself. The name rmail is used as an interface by some
68 UUCP systems.
69
70
71 If Exim is called under the name runq it behaves as if the
72 option -q were present before any other options, for
73 compatibility with smail. The -q option causes a single
74 queue-runner process to be started.
75 !!LIMITATIONS
76
77
78 For the benefit of those reading this overview to see
79 whether Exim is of interest to them, its limitations are
80 listed first.
81
82
83 __ANSI-C__
84
85
86 Exim is written in ANSI C. This should not be much of a
87 limitation these days. However, to help with systems that
88 lack a true ANSI C library, Exim avoids making any use of
89 the value returned by the sprintf() function, which is one
90 of the main incompatibilities. It has its own version of
91 strerror() for use with SunOS4 and any other system that
92 lacks this function, and a macro can be defined to turn
93 memmove() into bcopy() if necessary.
94
95
96 __Filenames__
97
98
99 Exim uses file names that are longer than 14
100 characters.
101
102
103 __Bangpaths__
104
105
106 Exim is intended for use as an Internet mailer, and
107 therefore handles addresses in RFC 822 domain format only.
108 It cannot handle 'bang paths', though simple two-component
109 bang paths can be converted by a straightforward rewriting
110 configuration.
111
112
113 __Domains required__
114
115
116 Exim insists that every address it handles has a domain
117 attached. For incoming local messages, domainless addresses
118 are automatically qualified with a configured domain value.
119 Configuration options specify from which remote systems
120 unqualified addresses are acceptable.
121
122
123 __Transports__
124
125
126 The only external transport currently implemented is an SMTP
127 transport over a TCP/IP network (using sockets), suitable
128 for machines on the Internet. However, a pipe transport is
129 available, and there are facilities for writing messages to
130 files in 'batched SMTP' format; this can be used to send
131 messages to some other transport mechanism. Batched SMTP
132 input is also catered for.
133 !!FEATURES
134
135
136 Exim follows the same general approach of decentralized
137 control that Smail 3 does. There is no central process doing
138 overall management of mail delivery. However, unlike Smail,
139 the independent delivery processes share data in the form of
140 'hints', which makes delivery more efficient in some cases.
141 The hints are kept in a number of DBM files. If any of these
142 files are lost, the only effect is to change the pattern of
143 delivery attempts and retries.
144
145
146 Many configuration options can be given as expansion
147 strings, and as these can include file lookups, much of
148 Exim's operation can be made table-driven if desired. For
149 example, it is possible to do local delivery on a machine on
150 which the users do not have accounts.
151
152
153 Regular expressions are available in a number of
154 configuration parameters.
155
156
157 Domain lists can include file lookups, making it possible to
158 support a large number of local domains.
159
160
161 Exim has flexible retry algorithms, applicable to mail
162 routing as well as to delivery.
163
164
165 Exim contains header and envelope rewriting
166 facilities.
167
168
169 Unqualified addresses are accepted only from specified hosts
170 or networks.
171
172
173 Exim can perform multiple deliveries down the same SMTP
174 channel after deliveries to a host have been
175 delayed.
176
177
178 Exim can be configured to do local deliveries immediately
179 but to leave remote deliveries until the message is picked
180 up by a queue-runner process. This increases the likelihood
181 of multiple messages being sent down a single SMTP
182 connection.
183
184
185 When copies of a message have to be delivered to more than
186 one remote host, up to a configured maximum number of remote
187 deliveries can be done in parallel.
188
189
190 Exim supports optional checking of incoming return path
191 (sender) and receiver addresses as they are received by
192 SMTP.
193
194
195 SMTP calls from specific machines, optionally from specific
196 idents, can be locked out, and incoming SMTP messages from
197 specific senders can also be locked out.
198
199
200 It is possible to control which hosts may use the Exim host
201 as a relay for onward transmission of mail; the control can
202 be made to depend on the address domain.
203
204
205 Messages on the queue can be 'frozen' and 'thawed' by the
206 administrator.
207
208
209 The maximum size of message can be specified. Exim can
210 handle a number of independent local domains on the same
211 machine; each domain can have its own alias files, etc.
212 These are commonly called
213
214
215 Exim stats a user's home directory before looking for a
216 .forward file, in order to detect the case of a missing NFS
217 mount.
218
219
220 Exim contains an optional built-in mail filtering facility.
221 This enables users to set up their own mail filtering in a
222 straightfoward manner without the need to run an external
223 program. There can also be a system filter file that applies
224 to all messages.
225
226
227 There is support for multiple user mailboxes controlled by
228 prefixes or suffixes on the user name, either via the filter
229 mechanism or through multiple .forward files.
230
231
232 Periodic warnings are automatically sent to messages'
233 senders when delivery is delayed - the time between warnings
234 is configurable.
235
236
237 A queue run can be manually started to deliver just a
238 particular portion of the queue, or those messages with a
239 recipient whose address contains a given
240 string.
241
242
243 Exim can be configured to run as root all the time, except
244 when performing local deliveries, which it always does in a
245 separate process under an appropriate uid and gid.
246 Alternatively, it can be configured to run as root only when
247 needed; in particular, it need not run as root when
248 receiving incoming messages or when sending out messages
249 over SMTP.
250
251
252 I have tried to make the wording of delivery failure
253 messages clearer and simpler, for the benefit of those
254 less-experienced people who are now using
255 email.
256
257
258 The Exim Monitor is an optional extra; it displays
259 information about Exim's processing in an X window, and an
260 administrator can perform a number of control actions from
261 the window interface.
262 !!METHOD OF OPERATION
263
264
265 When Exim receives a message, it writes two files in its
266 spool directory. The first contains the envelope
267 information, the current status of the message, and the
268 headers, while the second contains the body of the message.
269 The status of the message includes a complete list of
270 recipients and a list of those that have already received
271 the message. The header file gets updated during the course
272 of delivery if necessary.
273
274
275 A message remains in the spool directory until it is
276 completely delivered to its recipients or to an error
277 address, or until it is deleted by an administrator or by
278 the user who originally created it. In cases when delivery
279 cannot proceed - for example, when a message can neither be
280 delivered to its recipients nor returned to its sender, the
281 message is marked 'frozen' on the spool, and no more
282 deliveries are attempted. The administrator can thaw such
283 messages when the problem has been corrected, and can also
284 freeze individual messages by hand if
285 necessary.
286
287
288 As delivery proceeds, Exim writes timestamped information
289 about each address to a per-message log file; this includes
290 any delivery error messages. This log is solely for the
291 benefit of the administrator. All the information Exim
292 itself needs for delivery is kept in the header spool file.
293 The message log file is deleted with the spool files. If a
294 message is delayed for more than a configured time, a
295 warning message is sent to the sender. This is repeated
296 whenever the same time elapses again without delivery being
297 complete.
298
299
300 The main delivery processing elements of Exim are called
301 directors, routers, and transports. Code for a number of
302 these is provided, and compile-time options specify which
303 ones are actually included in the binary. Directors handle
304 addresses that include one of the local domains, routers
305 handle remote addresses, and transports do actual
306 deliveries.
307 !!TRUSTED AND ADMIN USERS
308
309
310 Some Exim options are available only to
311
312
313 A trusted user is root or the Exim user (if defined) or any
314 user listed in the trusted_users configuration option, or
315 any user, if the currently set group is one of those listed
316 in the trusted_groups configuration option. Trusted users
317 are permitted to use the -f option to specify the senders of
318 messages that are passed to Exim through the local
319 interface, and also to specify host names, host addresses,
320 protocol names, and ident values. Thus they are able to
321 insert messages into Exim's queue locally that have the
322 characteristics of messages received from a remote
323 host.
324
325
326 An admin user is root or the Exim user (if defined) or any
327 user that is a member of the Exim group (if defined). The
328 current group does not have to be the Exim group. Admin
329 users are permitted to operate on messages in the queue, for
330 example, to force delivery failures. It is also necessary to
331 be an admin user in order to see the full information
332 provided by the Exim monitor.
333 !!OPTIONS
334
335
336 Exim's command options are as follows:
337
338
339 __-bd__
340
341
342 Run Exim as a daemon, awaiting incoming SMTP connections.
343 This option can be used only by an admin user. If either of
344 the -d or -dm options are set, the daemon does not
345 disconnect from the controlling terminal. By default, Exim
346 listens for incoming connections on all the host's
347 interfaces, but it can be restricted to specific interfaces
348 by setting the local_interfaces option in the configuration
349 file. The standard SMTP port is used, but this can be varied
350 by means of the -oX option. Most commonly, the -bd option is
351 combined with the -q
352
353
354 The process id of a daemon that is both listening and
355 starting queue runners is written to a file called
356 exim-daemon.pid in Exim's spool directory, unless the -oX
357 option is used, in which case the file name is
358 exim-daemon.
359
360
361 It is possible to change the directory in which these pid
362 files are written by changing the setting of PID_FILE_PATH
363 in Local/Makefile. The files are written while Exim is still
364 running as root. Further details are given in the comments
365 in src/EDITME.
366
367
368 The SIGHUP signal can be used to cause the daemon to re-exec
369 itself. This should be done whenever Exim's configuration
370 file is changed, or a new version of Exim is installed. It
371 is not necessary to do this when other files (e.g. alias
372 files) are changed.
373
374
375 This option is the same as -bf except that it assumes that
376 the filter
377
378
379 being tested is a system filter. The additional commands
380 that are available only in system filters are
381 recognized.
382
383
384 __-bf __
385
386
387 Run Exim in filter testing mode; the file is the filter file
388 to be tested, and a test message must be supplied on the
389 standard input. If there are no message-dependent tests in
390 the filter, an empty file can be supplied. If a system
391 filter file is being tested, -bF should be used instead of
392 -bf. If the test file does not begin with the special
393 line
394
395
396 # Exim filter
397
398
399 then it is taken to be a normal .forward file, and is tested
400 for validity under that interpretation. The result of this
401 command, provided no errors are detected, is a list of the
402 actions that Exim would try to take if presented with the
403 message for real. More details of filter testing are given
404 in the separate document entitled
405
406
407 When testing a filter file, the envelope sender can be set
408 by the -f option, or by a 'From ' line at the start of the
409 test message. Various parameters that would normally be
410 taken from the envelope recipient address of a message can
411 be set by means of additional command line options. These
412 are:
413
414
415 -bfd
416
417
418 The local part should always be set to the incoming address
419 with any prefix or suffix stripped, because that is how it
420 appears when a message is actually being
421 delivered.
422
423
424 __-bh __
425
426
427 This option runs a fake SMTP session as if from the given IP
428 address, using the standard input and output. Comments as to
429 what is going on are written to the standard error file.
430 These include lines beginning with 'LOG' for anything that
431 would have been logged. This facility is for testing
432 configuration options for blocking hosts and/or senders and
433 for checking on relaying control. Messages supplied during
434 the testing session are discarded, and nothing is written to
435 any of the real log files. There may be pauses when DNS (and
436 other) lookups are taking place, and of course these may
437 time out. The -oMi option can be used to specify a specific
438 IP interface if this is important.
439
440
441 __-bi__
442
443
444 Sendmail interprets the -bi option as a request to rebuild
445 its alias file. Exim does not have the concept of a single
446 alias file, and so it cannot mimic this behaviour. However,
447 calls to /usr/lib/sendmail -bi tend to appear in various
448 scripts such as NIS make files, so the option must be
449 recognized.
450
451
452 If -bi is encountered, the command specified by the
453 bi_command configuration option is run, under the uid and
454 gid of the caller of Exim. If the -oA option is used, its
455 value is passed to the command as an argument. The command
456 set by bi_command may not contain arguments. The command can
457 use the exim_dbmbuild utility, or some other means, to
458 rebuild alias files if this is required. If the bi_command
459 option is not set, then calling Exim with -bi is a
460 no-op.
461
462
463 __-bm__
464
465
466 Accept an incoming, locally-generated message on the current
467 input, and deliver it to the addresses given as the command
468 arguments (except when -t is also given - see below). Each
469 argument can be a comma-separated list of RFC 822 addresses.
470 This is the default option, and is assumed if no other
471 conflicting option is present.
472
473
474 The format of the message must be as defined in RFC 822,
475 except that, for compatibility with sendmail and smail, a
476 line in one of the forms
477
478
479 From sender Fri Jan 5 12:55 GMT 1999 From sender Fri, 5 Jan
480 97 12:55:01
481
482
483 (with the weekday optional, and possibly with additional
484 text after the date) is permitted to appear at the start of
485 the message. There appears to be no authoritative
486 specification of the format of this line. Exim recognizes it
487 by matching against the regular expression defined by the
488 uucp_from_pattern option, which can be changed if necessary.
489 The specified sender is treated as if it were given as the
490 argument to the -f option, but if a -f option is also
491 present, its argument is used in preference to the address
492 taken from the message. The caller of Exim must be a trusted
493 user for the sender of a message to be set in this
494 way.
495
496
497 __-bp__
498
499
500 List the contents of the mail queue on the current output.
501 If the -bp option is followed by a list of message ids, then
502 just those messages are listed. By default this option may
503 only be used by an admin user. The queue_list_requires_admin
504 option can be set false to allow any user to see the
505 queue.
506
507
508 Each message on the queue is displayed as in the following
509 example:
510
511
512 25m 2.9K 0t5C6f-0000c8-00
513
514
515 The first line contains the amount of time the message has
516 been on the queue (in this case 25 minutes), the size of the
517 message (2.9K), the unique identifier for the message, and
518 the message sender, as contained in the envelope. If the
519 message is a delivery error message, the sender address is
520 empty, and appears as
521
522
523 The recipients of the message (taken from the envelope, not
524 the headers) are displayed on subsequent lines. Those
525 addresses to which the message has already been delivered
526 are marked with the letter D. If an original address gets
527 expanded into several addresses via an alias or forward
528 file, the original is displayed with a 'D' only when
529 deliveries for all of its child addresses are
530 completed.
531
532
533 __-bpa__
534
535
536 This option operates like -bp, but in addition it shows
537 delivered addresses that were generated from the original
538 top level address(es) in each message by alias or forwarding
539 operations. These addresses are flagged with '+D' instead of
540 just 'D'.
541
542
543 __-bpr__
544
545
546 This option operates like -bp, but the output is not sorted
547 into chronological order of message arrival. This can speed
548 it up when there are lots of messages on the queue, and is
549 particularly useful if the output is going to be
550 post-processed in a way that doesn't need the
551 sorting.
552
553
554 __-bpra__
555
556
557 This option is a combination of -bpr and -bpa.
558
559
560 __-bpru__
561
562
563 This option is a combination of -bpr and -bpu.
564
565
566 __-bpu__
567
568
569 This option operates like -bp but shows only undelivered
570 top-level addresses for each message displayed. Addresses
571 generated by aliasing or forwarding are not shown, unless
572 the message was deferred after processing by a director with
573 the one_time option set.
574
575
576 __-bP__
577
578
579 If this option is given with no arguments, it causes the
580 values of all Exim's main configuration options to be
581 written to the standard output. The values of one or more
582 specific options can be requested by giving their names as
583 arguments, for example:
584
585
586 exim -bP qualify_domain local_domains
587
588
589 If configure_file is given, the name of the runtime
590 configuration file is output. If log_file_path or
591 pid_file_path are given, the names of the directories where
592 log files and daemon pid files are written are output,
593 respectively. If these values are unset, log files are
594 written in a subdirectory of the spool directory called log,
595 and pid files are written directly into the spool
596 directory.
597
598
599 If one of the words director, router, or transport is given,
600 followed by the name of an appropriate driver instance, the
601 option settings for that driver are output. For
602 example:
603
604
605 exim -bP transport local_delivery
606
607
608 The generic driver options are output first, followed by the
609 driver's private options. A list of the names of drivers of
610 a particular type can be obtained by using one of the words
611 director_list, router_list, or transport_list, and a
612 complete list of all drivers with their option settings can
613 be obtained by using directors, routers, or
614 transports.
615
616
617 __-brt__
618
619
620 This option is for testing retry rules, and it must be
621 followed by up to three arguments. It causes Exim to look
622 for a retry rule that matches the values and to output it on
623 the standard output. For example:
624
625
626 exim -brt bach.comp.mus Retry rule: *.comp.mus F,2h,15m;
627 FG,4d,30m;
628
629
630 See chapter 31 for a description of Exim's retry rules. The
631 first argument, which is required, can be a complete address
632 in the form local_part@domain, or it can be just a domain
633 name. The second argument is an optional second domain name;
634 if no retry rule is found for the first argument, the second
635 is tried. This ties in with Exim's behaviour when looking
636 for retry rules for remote hosts - if no rule is found that
637 matches the host, one that matches the mail domain is
638 sought. The final argument is the name of a specific
639 delivery error, as used in setting up retry rules, for
640 example 'quota_3d'.
641
642
643 __-brw__
644
645
646 This option is for testing address rewriting rules, and it
647 must be followed by a single argument, consisting of either
648 a local part without a domain, or a complete address with a
649 fully-qualified domain. Exim outputs how this address would
650 be rewritten for each possible place it might
651 appear.
652
653
654 __-bS__
655
656
657 This option is used for batched SMTP input, where messages
658 have been received from some external source by an
659 alternative transport mechanism. It causes Exim to accept
660 one or more messages by reading SMTP on the standard input,
661 but to generate no responses. If any error is encountered
662 reports are written to the standard output and error
663 streams, and Exim gives up immediately.
664
665
666 If the caller is trusted, then the senders in the MAIL
667 commands are believed; otherwise the sender is always the
668 caller of Exim. Unqualified senders and receivers are not
669 rejected (there seems little point) but instead just get
670 qualified. Sender addresses are verified if sender_verify is
671 set, unless sender_verify_batch is unset (which is the
672 default). Receiver verification and administrative rejection
673 is not done, even if configured. HELO and EHLO act as RSET;
674 VRFY, EXPN, ETRN, HELP, and DEBUG act as NOOP; QUIT quits.
675 The return code is 0 if no error was detected; it is 1 if
676 one or more messages were accepted before the error was
677 detected; otherwise it is 2. More details of input using
678 batched SMTP are given in section 42.8.
679
680
681 __-bs__
682
683
684 This option causes Exim to accept one or more messages by
685 reading SMTP commands on the standard input, and producing
686 SMTP replies on the standard output. Some user agents use
687 this interface as a way of passing locally-generated
688 messages to the MTA. The option can also be used to run Exim
689 from inetd, as an alternative to using a listening daemon,
690 in which case the standard input is the connected socket.
691 Exim distinguishes between the two cases by attempting to
692 read the IP address of the peer connected to the standard
693 input. If it is not a socket, the call to getpeername()
694 fails, and Exim assumes it is dealing with a local
695 message.
696
697
698 If the caller of Exim is trusted, then the senders of
699 messages are taken from the SMTP MAIL FROM commands.
700 Otherwise the content of these commands is ignored and the
701 sender is set up as the calling user.
702
703
704 __-bt__
705
706
707 Run in address testing mode, in which each argument is taken
708 as an address to be tested. The results are written to the
709 standard output. If no arguments are given, Exim runs in an
710 interactive manner, prompting with a right angle bracket for
711 addresses to be tested. Each address is handled as if it
712 were the recipient address on a message and passed to the
713 appropriate directors or routers (compare the -bv option);
714 the result is written to the standard output. The return
715 code is 2 if any address failed outright; it is 1 if no
716 address failed outright but at least one could not be
717 resolved for some reason. Return code 0 is given only when
718 all addresses succeed.
719
720
721 If any of the directors or routers in the configuration
722 makes any tests on the sender address of a message, then you
723 should use the -f option to set an appropriate sender when
724 running -bt tests. Without it, the sender is assumed to be
725 the calling user at the default qualifying
726 domain.
727
728
729 __-bV__
730
731
732 Write the current version number, compilation number, and
733 compilation date of the exim binary to the standard
734 output.
735
736
737 __-bv__
738
739
740 Verify the addresses that are given as the arguments to the
741 command, and write the results to the standard output.
742 Verification differs from address testing (the -bt option)
743 in that directors and routers that have no_verify set are
744 skipped, and if the address is accepted by a director or
745 router that has fail_verify set, verification fails. This is
746 the same logic that is used when verifying addresses on
747 incoming messages (see the sender_verify and receiver_verify
748 options). The address is verified as a recipient if -bv is
749 used; to verify as for a sender address, -bvs should be
750 used.
751
752
753 If the -v (or -d) option is not set, the output consists of
754 a single line for each address, stating whether it was
755 verified or not, and giving a reason in the latter case.
756 Otherwise, more details are given of how the address has
757 been handled, and in the case of aliases or forwarding, the
758 generated addresses are also considered.
759
760
761 The return code is 2 if any address failed outright; it is 1
762 if no address failed outright but at least one could not be
763 resolved for some reason. Return code 0 is given only when
764 all addresses succeed.
765
766
767 If any of the directors or routers in the configuration
768 makes any tests on the sender address of a message, then you
769 should use the -f option to set an appropriate sender when
770 running -bv tests. Without it, the sender is assumed to be
771 the calling user at the default qualifying
772 domain.
773
774
775 __-bvs__
776
777
778 This option acts like -bv, but verifies the address as a
779 sender rather than a recipient address. This affects any
780 rewriting and qualification that might happen.
781
782
783 __-C __
784
785
786 Read the runtime configuration from the given file instead
787 of from the default file specified by the CONFIGURE_FILE
788 compile-time setting. When this option is used by an
789 unprivileged caller, Exim gives up its root privilege
790 immediately, and runs with the real and effective uid and
791 gid set to those of the caller, to avoid any security
792 exposure. It does not do this if the caller is root or the
793 exim user. The facility is useful for ensuring that
794 configuration files are syntactically correct, but cannot be
795 used for test deliveries, unless the caller is privileged,
796 or unless it's an exotic configuration that does not require
797 privilege. No check is made on the owner or group of the
798 file specified by this option.
799
800
801 __-D__
802
803
804 This option can be used to override macro definitions in the
805 configuration file (see section 7.2). However, like -C, if
806 it is used by an unprivileged caller, it causes Exim to give
807 up its root privilege. This option may be repeated up to 10
808 times on a command line.
809
810
811 __-d__
812
813
814 Sets a debug level, causing debugging information to be
815 written to the standard error file. Whitespace between -d
816 and the number is optional. If no number is given, 1 is
817 assumed, and the higher the number, the more output is
818 produced. A value of zero turns debugging output off. A
819 value of 9 gives the maximum amount of general information,
820 10 gives in addition details of the interpretation of filter
821 files, and 11 or higher also turns on the debugging option
822 for DNS lookups.
823
824
825 __-df__
826
827
828 If this option is set and STDERR_FILE was defined when Exim
829 was built, debugging information is written to the file
830 defined by that variable instead of to the standard error
831 file. This option provides a way of obtaining debugging
832 information when Exim is run from inetd.
833
834
835 __-dm__
836
837
838 This option causes information about memory allocation and
839 freeing operations to be written to the standard error
840 file.
841
842
843 __-dropcr__
844
845
846 At least one MUA (dtmail) that calls an MTA via the command
847 line is broken in that it terminates each line with CRLF,
848 instead of just LF, which is the usual Unix convention, and
849 although this bug has been admitted, it apparently won't get
850 fixed. There is also some UUCP software which leaves CR at
851 the ends of lines in messages. As a slight pander to these
852 programs, the -dropcr option causes Exim to drop all CR
853 characters in an incoming non-SMTP message.
854
855
856 __-ex__
857
858
859 There are a number of sendmail options starting with -oe
860 which seem to be called by various programs without the
861 leading o in the option. For example, the vacation program
862 uses -eq. Exim treats all options of the form -ex as
863 synonymous with the corresponding -oex options.
864
865
866 __-F __
867
868
869 Set the sender's full name for use when a locally-generated
870 message is being accepted. In the absence of this option,
871 the user's
872
873
874 __-f __
875
876
877 Set the address of the sender of a locally-generated
878 message. This option can normally be used only by root or
879 the Exim user or by one of the configured trusted users.
880 However, anyone may use it when testing a filter file with
881 -bf or when testing or verifying addresses using the -bt or
882 -bv options. In other cases, the sender of a local message
883 is always set up as the user who ran the exim command, and
884 -f is ignored, with one exception. If the special setting -f
885
886
887 MAIL FROM:
888
889
890 and local deliveries to contain
891
892
893 Return-path:
894
895
896 when configured to contain Return-path: headers. The
897 filtering code treats such a message as an error message,
898 and won't generate messages as a result of reading
899 it.
900
901
902 White space between -f and the
903
904
905 __-h __
906
907
908 This option is accepted for compatibility with sendmail, but
909 at present has no effect. (In sendmail it overrides the 'hop
910 count' obtained by counting Received headers.)
911
912
913 __-i__
914
915
916 This option, which has the same effect as -oi, specifies
917 that a dot on a line by itself should not terminate an
918 incoming, non-SMTP message. I can find no documentation for
919 this option in Solaris 2.4 sendmail, but the mailx command
920 in Solaris 2.4 uses it.
921
922
923 __-M__
924
925
926 The arguments are interpreted as a list of message ids, and
927 Exim runs a delivery attempt on each message in turn. If any
928 of the messages are frozen, they are automatically thawed
929 before the delivery attempt. Retry hints for any of the
930 addresses are overridden - this option forces Exim to try to
931 deliver even if the normal retry time has not yet been
932 reached. This option requires the caller to be an admin
933 user. However, there is an option called prod_requires_admin
934 which can be set false to relax this restriction (and also
935 the same requirement for the -q and -R
936 options).
937
938
939 __-Mar
940 __
941
942
943 The first argument must be a message id, and the remaining
944 ones must be email addresses. Exim adds the addresses to the
945 list of recipients of the message. However, if the message
946 is active (in the middle of a delivery attempt), its status
947 is not altered. This option can be used only by an admin
948 user.
949
950
951 __-Mc__
952
953
954 The arguments are interpreted as a list of message ids, and
955 Exim runs a delivery attempt on each message in turn, but
956 unlike the -M option, it does check for retry hints, and
957 respects any that are found. This option is not very useful
958 to external callers (except for testing). It is provided for
959 internal use by Exim when it needs to re-invoke itself in
960 order to regain root privilege for a delivery (see chapter
961 49).
962
963
964 __-Meb __
965
966
967 This runs, under /bin/sh, the command defined in the shell
968 variable VISUAL or, if that is not defined, EDITOR or, if
969 that is not defined, the command vi, on a copy of the spool
970 file containing the body of message (eb = Edit Body). If the
971 editor exits normally, then the result of editing replaces
972 the spool file. The message is locked during this process,
973 so no delivery attempts can occur. Note that the first line
974 of the spool file is its own name; care should be taken not
975 to disturb this. The thinking behind providing this feature
976 is that an administrator who has had to mess around with the
977 addresses to get a message delivered might want to add some
978 (grumbly) comment at the start of the message text. This
979 option can be used only by an admin user.
980
981
982 __-Mes __
983
984
985 There must be exactly two arguments. The first argument must
986 be a message id, and the second one an email address. Exim
987 changes the sender address in the message to the given
988 address, which must be a fully qualified address, or
989 '
990
991
992 __-Mf__
993
994
995 The arguments are interpreted as a list of message ids, and
996 each message is marked 'frozen'. This prevents any delivery
997 attempts taking place until the message is 'thawed', either
998 manually or as a result of the auto_thaw configuration
999 option. However, if any of the messages are active (in the
1000 middle of a delivery attempt), their status is not altered.
1001 This option can be used only by an admin user.
1002
1003
1004 __-Mg__
1005
1006
1007 The arguments are interpreted as a list of message ids, and
1008 Exim gives up trying to deliver those messages. A delivery
1009 error message is sent, containing the text 'cancelled by
1010 administrator'. However, if any of the messages are active,
1011 their status is not altered. This option can be used only by
1012 an admin user.
1013
1014
1015 __-Mmad __
1016
1017
1018 Exim marks the all recipient addresses in the message as
1019 already delivered. However, if the message is active (in the
1020 middle of a delivery attempt), its status is not altered.
1021 This option can be used only by an admin user.
1022
1023
1024 __-Mmd
1025 __
1026
1027
1028 The first argument must be a message id, and the remaining
1029 ones must be email addresses. Exim marks the given addresses
1030 as already delivered. However, if the message is active (in
1031 the middle of a delivery attempt), its status is not
1032 altered. This option can be used only by an admin
1033 user.
1034
1035
1036 __-Mrm__
1037
1038
1039 The arguments are interpreted as a list of message ids, and
1040 each message is completely removed from Exim's queue, and
1041 forgotten. However, if any of the messages is active, its
1042 status is not altered. This option can be used only by an
1043 admin user or by the user who originally caused the message
1044 to be placed on the queue.
1045
1046
1047 __-Mt__
1048
1049
1050 The arguments are interpreted as a list of message ids, and
1051 each message that was 'frozen' is now 'thawed', so that
1052 delivery attempts can resume. However, if any of the
1053 messages is active, its status is not altered. This option
1054 can be used only by an admin user.
1055
1056
1057 __-Mvb __
1058
1059
1060 The contents of the message body (-D) spool file are written
1061 to the standard output. This option can be used only by an
1062 admin user.
1063
1064
1065 __-Mvh __
1066
1067
1068 The contents of the message headers (-H) spool file are
1069 written to the standard output. This option can be used only
1070 by an admin user.
1071
1072
1073 __-Mvl __
1074
1075
1076 The contents of the message log spool file are written to
1077 the standard output. This option can be used only by an
1078 admin user.
1079
1080
1081 __-m__
1082
1083
1084 This is apparently a synonym for -om that is accepted by
1085 sendmail, so Exim treats it that way too.
1086
1087
1088 __-N__
1089
1090
1091 This is a debugging option that inhibits delivery of a
1092 message at the transport level. It implies at least -d1.
1093 Exim goes through many of the motions of delivery - it just
1094 doesn't actually transport the message, but instead behaves
1095 as if it had successfully done so. However, it does not make
1096 any updates to the retry database, and the log entries for
1097 deliveries are flagged with '*
1098
1099
1100 __-oA __
1101
1102
1103 This option is used by Sendmail in conjunction with -bi to
1104 specify an alternative alias file name. Exim handles -bi
1105 differently; see the description above.
1106
1107
1108 __-oB __
1109
1110
1111 This is a debugging option which limits the maximum number
1112 of SMTP deliveries down one channel to
1113
1114
1115 __-odb__
1116
1117
1118 This option applies to all modes in which Exim accepts
1119 incoming messages, including the listening daemon. It
1120 requests 'background' delivery of such messages, which means
1121 that the accepting process automatically starts another
1122 delivery process for each message received. Exim does not
1123 wait for such processes to complete (it can take some time
1124 to perform SMTP deliveries). This is the default action if
1125 none of the -od options are present.
1126
1127
1128 __-odf__
1129
1130
1131 This option (compatible with smail) requests 'foreground'
1132 (synchronous) delivery when Exim has accepted a
1133 locally-generated message. For the daemon it is exactly the
1134 same as -odb. For a single message received on the standard
1135 input, if the protection regime permits it (see chapter 44),
1136 Exim converts the reception process into a delivery process.
1137 In other cases, it creates a new delivery process, and then
1138 waits for it to complete before proceeding.
1139
1140
1141 __-odi__
1142
1143
1144 This option is synonymous with -odf. It is provided for
1145 compatibility with sendmail.
1146
1147
1148 __-odq__
1149
1150
1151 This option applies to all modes in which Exim accepts
1152 incoming messages, including the listening daemon. It
1153 specifies that the accepting process should not
1154 automatically start a delivery attempt for each message
1155 received. Messages are placed on the queue, and remain there
1156 until a subsequent queue-running process encounters them.
1157 The queue_only configuration option has the same
1158 effect.
1159
1160
1161 __-odqr__
1162
1163
1164 This option applies to all modes in which Exim accepts
1165 incoming messages, including the listening daemon. It causes
1166 Exim to process local addresses when a message is received,
1167 but not even to try routing remote addresses. Contrast with
1168 -odqs below, which does the routing, but not the delivery.
1169 The remote addresses will be picked up by the next queue
1170 runner. The queue_remote configuration option has the same
1171 effect for specific domains.
1172
1173
1174 __-odqs__
1175
1176
1177 This option is a hybrid between -odb and -odq. A delivery
1178 process is started for each incoming message, the addresses
1179 are all processed, and local deliveries are done in the
1180 normal way. However, if any SMTP deliveries are required,
1181 they are not done at this time. Such messages remain on the
1182 queue until a subsequent queue-running process encounters
1183 them. Because routing was done, Exim knows which messages
1184 are waiting for which hosts, and so a number of messages for
1185 the same host will get sent in a single SMTP connection. The
1186 queue_smtp configuration option has the same effect for
1187 specific domains. See also the -qq option.
1188
1189
1190 __-oee__
1191
1192
1193 If an error is detected while a non-SMTP message is being
1194 received (for example, a malformed address), the error is
1195 reported to the sender in a mail message. Provided the
1196 message is successfully sent, Exim exits with a return code
1197 of zero. If not, the return code is 2 if the error was that
1198 the message had no recipients, and 1 otherwise. This option
1199 is the default if Exim is called as rmail.
1200
1201
1202 __-oem__
1203
1204
1205 This is the same as -oee, except that Exim always exits with
1206 a non-zero return code, whether or not the error message was
1207 successfully sent. This is the default option, unless Exim
1208 is called as rmail.
1209
1210
1211 __-oep__
1212
1213
1214 If an error is detected while a non-SMTP message is being
1215 received, the error is reported by writing a message to the
1216 standard error file (stderr).
1217
1218
1219 __-oeq__
1220
1221
1222 This option is supported for compatibility with sendmail,
1223 but has the same effect as -oep.
1224
1225
1226 __-oew__
1227
1228
1229 This option is supported for compatibility with sendmail,
1230 but has the same effect as -oem.
1231
1232
1233 __-oi__
1234
1235
1236 This option, which has the same effect as -i, specifies that
1237 a dot on a line by itself should not terminate an incoming,
1238 non-SMTP message. This is the default if Exim is called as
1239 rmail.
1240
1241
1242 __-oMa __
1243
1244
1245 This option sets the sender host address value, and can be
1246 used only by a trusted caller, except in conjunction with
1247 the -bh option. A real incoming connection overrides the
1248 address set by -oMa.. The value is used in log entries and
1249 can appear in Received: headers. The option is intended for
1250 use when handing to Exim messages received by other means,
1251 either via the command line or by using the -bs option. If
1252 -oMt is set then -oMa should normally be set as
1253 well.
1254
1255
1256 __-oMi __
1257
1258
1259 This option sets the IP interface address value, and can be
1260 used only by a trusted caller, except in conjunction with
1261 the -bh option. A real incoming connection overrides the
1262 address set by -oMi. The option is intended for use when
1263 handing to Exim messages received by other means, either via
1264 the command line or by using the -bs option.
1265
1266
1267 __-oMr __
1268
1269
1270 This option sets the received protocol value, and can be
1271 used only by a trusted caller, except in conjunction with
1272 the -bh option. The value is used in log entries and can
1273 appear in Received: headers. The option is intended for use
1274 when handing to Exim messages received by other means. It
1275 applies only to non-SMTP and batched SMTP
1276 input.
1277
1278
1279 __-oMs __
1280
1281
1282 This option sets the sender host name value, and can be used
1283 only by a trusted caller, except in conjunction with the -bh
1284 option. The value is used in log entries and can appear in
1285 Received headers. The option is intended for use when
1286 handing to Exim messages received by other
1287 means.
1288
1289
1290 __-oMt __
1291
1292
1293 This option sets the sender ident value, and can be used
1294 only by a trusted caller, except in conjunction with the -bh
1295 option. The value is used in log entries and can appear in
1296 Received headers. The default setting for local callers is
1297 the login id of the calling process. This can be overridden
1298 by supplying an empty argument. The option is intended for
1299 use when handing to Exim messages received by other
1300 means.
1301
1302
1303 __-om__
1304
1305
1306 In sendmail, this option means 'me too', indicating that the
1307 sender of a message should receive a copy of the message if
1308 the sender appears in an alias expansion. Exim always does
1309 this, so the option does nothing.
1310
1311
1312 __-or __
1313
1314
1315 This option sets a timeout value for incoming non-SMTP
1316 messages. If it is not set, Exim will wait forever for the
1317 standard input. The value can also be set using the
1318 accept_timeout configuration vari- able. The format used for
1319 specifying times is described in section 7.7.
1320
1321
1322 This option has exactly the same effect as -v.
1323
1324
1325 __-oX __
1326
1327
1328 This option is relevant only when the -bd option is also
1329 given. It overrides any setting of the daemon_smtp_port
1330 option, and specifies an alternative TCP/IP port number for
1331 the listening daemon. When used, the process number of the
1332 daemon is written to a file whose name is
1333 exim-daemon.
1334
1335
1336 __-pd__
1337
1338
1339 This option applies when an embedded Perl interpreter is
1340 linked with Exim (see chapter 10). It therefore does not
1341 apply to the debian package.
1342
1343
1344 It overrides the setting of the perl_at_start option,
1345 forcing the starting of the interpreter to be delayed until
1346 it is needed.
1347
1348
1349 __-ps__
1350
1351
1352 This option applies when an embedded Perl interpreter is
1353 linked with Exim (see chapter 10). It therefore does not
1354 apply to the debian package.
1355
1356
1357 It overrides the setting of the perl_at_start option,
1358 forcing the starting of the interpreter to occur as soon as
1359 Exim is started.
1360
1361
1362 __-q__
1363
1364
1365 If the -q option is not followed by a time value, it
1366 requests a single queue run operation. This option can be
1367 used only by an admin user. However, there is an option
1368 called prod_requires_admin which can be set false to relax
1369 this restriction (and also the same requirement for the -M
1370 and R options).
1371
1372
1373 Exim starts up a delivery process for each (inactive)
1374 message on the queue in turn, and waits for it to finish
1375 before starting the next one. If the delivery process spawns
1376 other processes to deliver other messages down passed SMTP
1377 connections, the queue runner waits for these to finish
1378 before proceeding. When all the queued messages have been
1379 considered, the original process terminates. In other words,
1380 a single pass is made over the waiting mail. Use -q with a
1381 time (see below) if you want this to be repeated
1382 periodically.
1383
1384
1385 Exim processes the waiting messages in an unpredictable
1386 order. It isn't very random, but it is likely to be
1387 different each time, which is all that matters. If one
1388 particular message screws up a remote MTA, other messages to
1389 the same MTA have a chance of getting through if they get
1390 tried first.
1391
1392
1393 However, it is possible to cause the messages to be
1394 processed in lexical id order, which is essentially the
1395 order in which they arrived, and to start this operation at
1396 a particular point by following the -q option with a
1397 starting message id. For example:
1398
1399
1400 exim -q 0t5C6f-0000c8-00
1401
1402
1403 This causes Exim to skip any messages whose ids are
1404 lexically less than the given id. A second id can also be
1405 given to stop the queue run before the end. See also the -R
1406 option and the queue_run_in_order option.
1407
1408
1409 __-q __
1410
1411
1412 This version of the -q option (which again can be run only
1413 by an admin user) causes Exim to run as a daemon, starting a
1414 queue-running process at intervals specified by the given
1415 time value (whose format is described in section 7.6). This
1416 form of the -q option is commonly combined with the -bd
1417 option, in which case a single daemon process handles both
1418 functions. A common way of starting up a combined daemon at
1419 system boot time is to use a command such as
1420
1421
1422 /opt/exim/bin/exim -bd -q30m
1423
1424
1425 Such a daemon listens for incoming SMTP calls, and also
1426 fires up a queue-runner process every 30 minutes. The
1427 process id of such a daemon is written to a file called
1428 exim-daemon.pid in Exim's spool directory, unless the -oX
1429 option has been used, in which case the file is called
1430 exim-daemon.
1431
1432
1433 __-qf__
1434
1435
1436 This option operates like -q, and may appear with or without
1437 a following time. The difference is that a delivery attempt
1438 is forced for each message, whereas with -q only those
1439 addresses that have passed their retry times are
1440 tried.
1441
1442
1443 __-qff__
1444
1445
1446 This option operates like -qf and may appear with or without
1447 a following time. The difference is that any frozen messages
1448 are automatically thawed, and delivery is attempted for
1449 them.
1450
1451
1452 __-qfl__
1453
1454
1455 This option operates like -ql, and may appear with or
1456 without a following time. The difference is that a delivery
1457 attempt is forced for each message, whereas with -ql only
1458 those local addresses that have passed their retry times are
1459 tried.
1460
1461
1462 __-qffl__
1463
1464
1465 This option operates like -qfl and may appear with or
1466 without a following time. The difference is that any frozen
1467 messages are auto-matically thawed, and delivery is
1468 attempted for any local addresses in them.
1469
1470
1471 __-ql__
1472
1473
1474 This option operates like -q, and may appear with or without
1475 a following time. The difference is that only local
1476 addresses are considered for delivery. Note that -ql cannot
1477 detect apparently remote addresses that actually turn out to
1478 be local when their domains get fully
1479 qualified.
1480
1481
1482 __-qq...__
1483
1484
1485 If any command line option starting with -q is specified
1486 with an additional q (for example, -qqf) then all the
1487 resulting queue runs are done in two stages. In the first
1488 stage, the queue is scanned as if the queue_smtp_domains
1489 option matched every domain. This causes remote addresses to
1490 be routed, but no transportation to be done. The database
1491 that remembers which messages are waiting for specific hosts
1492 is updated, as if delivery to those hosts had been deferred.
1493 After this is complete, a second, normal queue scan happens,
1494 and normal directing, routing, and delivery takes place.
1495 Messages which are routed to the same host should mostly be
1496 delivered down a single SMTP connection because of the hints
1497 that were set up during the first queue scan. This option
1498 may be useful for hosts that are connected to the Internet
1499 intermittently.
1500
1501
1502 __-qR __
1503
1504
1505 This option is synonymous with -R. It is provided for
1506 sendmail compatibility.
1507
1508
1509 __-qRf __
1510
1511
1512 This option is synonymous with -Rf.
1513
1514
1515 __-R __
1516
1517
1518 The white space between -R and the string is optional. This
1519 option is similar to -q with no time value, except that,
1520 when scanning the messages on the queue, Exim processes only
1521 those that have at least one undelivered address containing
1522 the given string, which is checked in a case-independent
1523 way. However, once a message is selected, all its addresses
1524 are processed. For the first message containing a matching
1525 address, Exim overrides any retry information and forces a
1526 delivery attempt. This makes it straightforward to initiate
1527 delivery for all messages to a given domain after a host has
1528 been down for some time. When the SMTP command ETRN is
1529 permitted (see the smtp_etrn options), its effect is to run
1530 Exim with the -R option.
1531
1532
1533 __-Rf __
1534
1535
1536 This option acts like -R, but forces a delivery for every
1537 matching non-frozen message, not just the first one. White
1538 space is required between -Rf and the string.
1539
1540
1541 __-Rff __
1542
1543
1544 This option acts like -Rf, but also thaws any frozen
1545 messages it encounters.
1546
1547
1548 __-r__
1549
1550
1551 This is a documented (for sendmail) obsolete alternative
1552 name for -f.
1553
1554
1555 __-t__
1556
1557
1558 When Exim is receiving a locally-generated, non-SMTP message
1559 on the current input, the -t option causes the recipients of
1560 the message to be obtained from the To:, Cc:, and Bcc:
1561 headers in the message instead of from the command
1562 arguments. The addresses are extracted before any rewriting
1563 takes places.
1564
1565
1566 If there are in fact any arguments, they specify addresses
1567 to which the message is not to be delivered. That is, the
1568 argument addresses are removed from the recipients list
1569 obtained from the headers. This is compatible with Smail 3
1570 and in accordance with the documented behaviour of Sendmail.
1571 However, it has been reported that in some versions at
1572 least, Sendmail adds argument addresses to those obtained
1573 from the headers. Exim can be made to behave in this way by
1574 setting the option extract_addresses_remove_arguments
1575 false.
1576
1577
1578 If a Bcc: header is present, it is removed from the message
1579 unless there is no To: or Cc: header, in which case a Bcc:
1580 header with no data is created, in accordance with RFC
1581 822.
1582
1583
1584 __-v__
1585
1586
1587 This option has exactly the same effect as -d1; it causes
1588 Exim to be standard error file. In particular, if an SMTP
1589 connection is made, the SMTP dialogue is shown.
1590
1591
1592 __-x__
1593
1594
1595 AIX uses -x for a private purpose ('mail from a local mail
1596 program has National Language Support extended characters in
1597 the body of the mail item'). It sets -x when calling the MTA
1598 from its mail command. Exim ignores this
1599 option.
1600 !!SEE ALSO
1601
1602
1603 There is extensive documentation available in
1604 ''/usr/share/doc/exim'' and in the info system regarding
1605 exim. Debian users please be sure to have the
1606 __exim-doc__ package installed.
1607 !!AUTHOR
1608
1609
1610 This manual page was stitched together by Christoph Lameter,
1611 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.