Exim's Transport Configuration
I have already explained a little about transports, the section begins with the heading "begin transports". The order of the list is not important as a specific transport will be choosen by the router.
begin transports ##################################################### ### end transport/00_exim-config_header ##################################################### ##################################################### ### transport/30_exim-config_address_file ##################################################### # This transport is used for handling deliveries directly to files that are # generated by aliasing or forwarding. # address_file: debug_print = "T: address_file for $local_part@$domain" driver = appendfile delivery_date_add envelope_to_add return_path_add ##################################################### ### end transport/30_exim-config_address_file ##################################################### ##################################################### ### transport/30_exim-config_address_pipe ##################################################### # This transport is used for handling pipe deliveries generated by alias or # .forward files. If the commands fails and produces any output on standard # output or standard error streams, the output is returned to the sender # of the message as a delivery error. # You can set different transports for aliases and forwards if you want to # - see the references to address_pipe in the routers section above. address_pipe: debug_print = "T: address_pipe for $local_part@$domain" driver = pipe return_fail_output ##################################################### ### end transport/30_exim-config_address_pipe ##################################################### ##################################################### ### transport/30_exim-config_address_reply ##################################################### # This transport is used for handling autoreplies generated by the filtering # option of the userforward router. # address_reply: debug_print = "T: autoreply for $local_part@$domain" driver = autoreply ##################################################### ### end transport/30_exim-config_address_reply ##################################################### ##################################################### ### transport/30_exim-config_mail_spool ##################################################### ### transport/30_exim-config_mail_spool # This transport is used for local delivery to user mailboxes in traditional # BSD mailbox format. # mail_spool: debug_print = "T: appendfile for $local_part@$domain" driver = appendfile file = /var/mail/$local_part delivery_date_add envelope_to_add return_path_add group = mail mode = 0660 mode_fail_narrower = false ##################################################### ### end transport/30_exim-config_mail_spool ##################################################### ##################################################### ### transport/30_exim-config_maildir_home ##################################################### ### transport/30_exim-config_maildir_home ################################# # Use this instead of mail_spool if you want to to deliver to Maildir in # home-directory - change the definition of LOCAL_DELIVERY # maildir_home: debug_print = "T: maildir_home for $local_part@$domain" driver = appendfile .ifdef MAILDIR_HOME_MAILDIR_LOCATION directory = MAILDIR_HOME_MAILDIR_LOCATION .else directory = $home/Maildir .endif .ifdef MAILDIR_HOME_CREATE_DIRECTORY create_directory .endif .ifdef MAILDIR_HOME_CREATE_FILE create_file = MAILDIR_HOME_CREATE_FILE .endif delivery_date_add envelope_to_add return_path_add maildir_format .ifdef MAILDIR_HOME_DIRECTORY_MODE directory_mode = MAILDIR_HOME_DIRECTORY_MODE .else directory_mode = 0700 .endif .ifdef MAILDIR_HOME_MODE mode = MAILDIR_HOME_MODE .else mode = 0600 .endif mode_fail_narrower = false ##################################################### ### end transport/30_exim-config_maildir_home ##################################################### ##################################################### ### transport/30_exim-config_maildrop_pipe ##################################################### maildrop_pipe: debug_print = "T: maildrop_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/maildrop" return_path_add delivery_date_add envelope_to_add ##################################################### ### end transport/30_exim-config_maildrop_pipe ##################################################### ##################################################### ### transport/30_exim-config_procmail_pipe ##################################################### procmail_pipe: debug_print = "T: procmail_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/procmail" return_path_add delivery_date_add envelope_to_add ##################################################### ### end transport/30_exim-config_procmail_pipe ##################################################### ##################################################### ### transport/30_exim-config_remote_smtp ##################################################### ### transport/30_exim-config_remote_smtp ################################# # This transport is used for delivering messages over SMTP connections. remote_smtp: debug_print = "T: remote_smtp for $local_part@$domain" driver = smtp ##################################################### ### end transport/30_exim-config_remote_smtp ##################################################### ##################################################### ### transport/30_exim-config_remote_smtp_smarthost ##################################################### ### transport/30_exim-config_remote_smtp_smarthost ################################# # This transport is used for delivering messages over SMTP connections # to a smarthost. The local host tries to authenticate and does some # modification in headers and return-path. # This transport is used for smarthost and satellite configurations. remote_smtp_smarthost: debug_print = "T: remote_smtp_smarthost for $local_part@$domain" driver = smtp hosts_try_auth = ${if exists {CONFDIR/passwd.client}{DCsmarthost}{}} tls_tempfail_tryclear = false DEBCONFheaders_rewriteDEBCONF DEBCONFreturn_pathDEBCONF ##################################################### ### end transport/30_exim-config_remote_smtp_smarthost ##################################################### ##################################################### ### transport/35_exim-config_address_directory ##################################################### # This transport is used for handling file addresses generated by alias # or .forward files if the path ends in "/", which causes it to be treated # as a directory name rather than a file name. address_directory: debug_print = "T: address_directory for $local_part@$domain" driver = appendfile envelope_to_add = true return_path_add = true check_string = "" escape_string = "" maildir_format |
Transports Definition
begin transports |
Address File Transport
This transport is used for handling deliveries directly to files that are generated by aliasing or forwarding. Notice the three header lines that are added to the mail message
address_file: debug_print = "T: address_file for $local_part@$domain" driver = appendfile delivery_date_add envelope_to_add return_path_add |
Address_pipe Transport
This transport is used for handling pipe deliveries generated by alias or .forward files. If the commands fails and produces any output on standard output or standard error streams, the output is returned to the sender of the message as a delivery error. You can set different transports for aliases and forwards if you want to - see the references to address_pipe in the routers configuration section.
address_pipe: debug_print = "T: address_pipe for $local_part@$domain" driver = pipe return_fail_output Note: the return_fail_output ensures that if the command fails any output is put into the bounced message |
Address_reply Transport
This transport is used for handling autoreplies generated by the filtering option of the userforward router. The autoreply transport is not a real transport but actually generates another message that requires to be delivered via the normally methods.
address_reply: debug_print = "T: autoreply for $local_part@$domain" driver = autoreply |
Mail_spool Transport
This transport is used for local delivery to user mailboxes in traditional BSD mailbox format. The mode_fail_narrower option relates to the appended files permission, if set to false the delivery is attempted with nthe existing mode.
mail_spool: debug_print = "T: appendfile for $local_part@$domain" driver = appendfile file = /var/mail/$local_part delivery_date_add envelope_to_add return_path_add group = mail mode = 0660 mode_fail_narrower = false |
Maildir_home Transport
Use this instead of mail_spool if you want to to deliver to Maildir in home-directory - change the definition of LOCAL_DELIVERY. There are lots of dependencies here which need to be set in the Main configuration section.
maildir_home: debug_print = "T: maildir_home for $local_part@$domain" driver = appendfile .ifdef MAILDIR_HOME_MAILDIR_LOCATION directory = MAILDIR_HOME_MAILDIR_LOCATION .else directory = $home/Maildir .endif .ifdef MAILDIR_HOME_CREATE_DIRECTORY create_directory .endif .ifdef MAILDIR_HOME_CREATE_FILE create_file = MAILDIR_HOME_CREATE_FILE .endif delivery_date_add envelope_to_add return_path_add maildir_format .ifdef MAILDIR_HOME_DIRECTORY_MODE directory_mode = MAILDIR_HOME_DIRECTORY_MODE .else directory_mode = 0700 .endif .ifdef MAILDIR_HOME_MODE mode = MAILDIR_HOME_MODE .else mode = 0600 .endif mode_fail_narrower = false |
Maildrop_pipe Transport
This transport uses the maildrop software to delivery the message, the router would have already checked that the maildrop binary exists.
maildrop_pipe: debug_print = "T: maildrop_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/maildrop" return_path_add delivery_date_add envelope_to_add |
Procmail_pipe Transport
This transport uses the procmail software to delivery the message, the router would have already checked that the procmail binary exists.
procmail_pipe: debug_print = "T: procmail_pipe for $local_part@$domain" driver = pipe path = "/bin:/usr/bin:/usr/local/bin" command = "/usr/bin/procmail" return_path_add delivery_date_add envelope_to_add |
Remote_smtp Transport
This transport is used for delivering messages over SMTP connections. This is the transport that will probably be used the most.
remote_smtp: debug_print = "T: remote_smtp for $local_part@$domain" driver = smtp |
Remote_smtp_smarthost Transport
This transport is used for delivering messages over SMTP connections to a smarthost. The local host tries to authenticate and does some modification in headers and return-path. This transport is used for smarthost and satellite configurations.
remote_smtp_smarthost: Note: check out string expansion on more information regarding string expansion. |
Address_directory Transport
This transport is used for handling file addresses generated by alias or .forward files if the path ends in "/", which causes it to be treated as a directory name rather than a file name, also see the routers configuration section.
address_directory: debug_print = "T: address_directory for $local_part@$domain" driver = appendfile envelope_to_add = true return_path_add = true check_string = "" escape_string = "" maildir_format |