Exim Command-line
Exim has many command-line arguments, which can be categorized as below
| Input Mode Control | Options to start processes for receiving incoming messages |
| Additional Message Data | Options to supply information to be incorperated into an incoming message that has been locally submitted |
| Immediate Delivery Control | Options to control whether a locally submitted message is delivered immediately on arrival, possibly depending on the type of recipient addresses |
| Error Reporting | Options to control how errors in a locally submitted message are reported |
| Queue Runner Processes | Options for starting queue runners and selecting which messages they process |
| Configuration Overrides | Options for overriding the normal configuration file |
| Watching Exim | Options for inspecting messages on the queue |
| Message Control | Options for forcing deliveries and doing other things to messages |
| Testing | Options for testing address handling, filter files, string expansion and retry rules |
| Debugging | Options for debugging Exim and its configuration file |
| Internal | Options that are only useful when one instance of Exim calls another (not discussed) |
| Compatibility with Sendmail | Options that are recognised because they are used by Sendmail, but do nothing in Exim (not discussed) |
| Starting a daemon process | Start listening process |
| Interactive SMTP reception | SMTP on stdin and stdout, from local process or via inetd # exim -bs |
| Batched SMTP | Batched SMTP from local process # exim -bS |
| Extracting recipients from header lines | Message on standard input, recipients from header lines # exim -t |
| Set SMTP timeout | Set SMTP timeout (overrides option smtp_receive_timeout) # exim -os |
| sender address | supplies the senders address overriding the address computed from the users login name # exim -f angrycustomer@datadisk.co.uk compliants@datadisk.co.uk |
| Override the username | The gecos field is normally used to supply the username, but this can be overriden # exim -F 'The Boss' paul.valle@datadisk.co.uk |
| Changing the characteristics for a message | There are a number of options starting with -oM that change the characteristics of a message -oMa sets the field that contains the IP address of the remote host |
| request background delivery | The accepting process automatically starts a delivery for each message received # exim -odb |
| Wait until a delivery process has finished | Exim will create a new delivery process but will wait until it completes before proceeding # exim -odf |
| Place messages on the queue | Exim normally tries to deliver the message ASAP, but you can place the message on the queue first # exim -odq |
| Place SMTP on queues but deliver local ASAP | You can place SMTP messages on a queue but send local deliveries ASAP # exim -odqs |
| Report an error by sending a message | # exim -oem |
| Report an error by sending a message but different error code | # exim -oee |
| Report error by writing a message to the standard error stream | # exim -oep |
| start a queue runner process | Queue runner processes are normally started periodically by the daemon but you can do it manually # exim -q |
| overriding retry times and freezing | Normally a queue runner process only unfrozen messages and addresses whose retry times have been reached but using the option below means all messages will be tried # exim -qff |
| Local deliveries only | Process all unfrozen messages, and does local deliveries but skips remote deliveries # exim -ql # only local deliveries |
| use specific configuration file | # exim -C /etc/exim/test_exim_config |
| Override defined macros | # exim -D LOG_SELECTOR=+filter ... Note: you can use upto 10 -D |
| Display number of messages on the queue | # exim -bpc |
| Display the complete queue | # exim -bp |
| Create a delivery process for specific message | # exim -M 1G4K8N-0003uY-29 |
| Freeze and thaw messages | # exim -Mf 1G4K8N-0003uY-29 # Freeze message # exim -Mt 1G4K8N-0003uY-29 # Thaw message |
| Abandon Messages | # exim -Mg 1G4K8N-0003uY-29 # give up and generate a bounce message # exim -Mrm 1G4K8N-0003uY-29 # give up but DO NOT generate a bounce message |
| Inspect a queued message | # exim -Mvb 1G4K8N-0003uY-29 # view message body # exim -Mvh 1G4K8N-0003uY-29 # view message header # exim -Mvl 1G4K8N-0003uY-29 # view message log |
| Modify a queued message | # exim -Mar 1G4K8N-0003uY-29 paul.valle@datadisk.co.uk # Add recipient # exim -Mes 1G4K8N-0003uY-29 paul.valle@datadisk.co.uk # Edit sender # exim -Mmad 1G4K8N-0003uY-29 # Mark all delivered # exim -Mmd 1G4K8N-0003uY-29 paul.valle@datadisk.co.uk # Mark delivered (just the address) |
| Testing the config settings | You can obtain lots of information using this command (version, authenicators, lookups, etc) # exim -bV |
| Display specific options from the config file | # exim -bP router_list Other options: |
| Testing routing | You get back information on what router, transport was used, type of lookup, etc # exim -bt paul.valle@datadisk.co.uk |
| Verify an address | # exim -bv paul.valle@datadisk.co.uk Note: -bvs will only be different if option verify_sender and verify_recipient have been set |
| Start a fake SMTP connection | # exim -bh 192.168.0.25 # starts a interactive SMTP session |
| Testing retry rules | # exim -brt datadisk.co.uk Note: brush up on the syntax for the retry rules see delivery errors |
| Testing rewrite rules | # exim -brw paul.valle@datadiskcorp.co.uk |
| Testing filter files | # exim -bf new-filter < test-message Note: more information can be seen at Message Filtering |
| Testing string expansion | # exim -be > ${lookup {root} lsearch{/etc/passwd}} x:0:1:Super User:/:/bin/sh > |
| Debugging | Start a interactive debugging session # exim -d-all+filter -f paul.valle@datadisk.co.uk complaints@datadisk.co.uk |
Debugging Selectors |
|
| acl | ACL interpretation |
| auth | Authenication |
| deliver | General delivery logic |
| dns | DNS lookups |
| dnsbl | DNS black list code |
| exec | Arguments for exec() |
| expand | Details of string expansion |
| filter | Filter handling |
| hints_lookup | Hints data lookup |
| host_lookup | All types of name-to-IP address handling |
| ident | ident lookups |
| interface | Lists of local interfaces |
| lists | Matching things in lists |
| load | System load checks |
| local_scan | Debugging in the local_scan() function |
| lookup | General lookup code and all lookups |
| memory | Memory handling |
| pid | Add pid to debug lines |
| process_info | Setting info for the process log |
| queue_run | Queue runs |
| receive | General message reception logic |
| resolver | The DNS resolver's debugging output |
| retry | Retry handling |
| rewrite | Address rewriting |
| route | Address routing |
| timestamp | Timestamp debug lines |
| tls | TLS logic |
| transport | Transports |
| uid | Change of uid/gid and looking up uid/gid |
| verify | Address verification |
| all | All of the above and also -v output |