Provided by: extsmail_2.5-1_amd64 bug


     extsmail.externals — configure which external commands to robustly send e-mail via


     extsmail.externals is used to configure extsmaild(1).  It consists of one or more group
     declarations. Each group consists of zero or more match / reject clauses followed by one or
     more external declarations. An external consists of one or more assignments of key = value

     When sending messages extsmaild(1) first searches through the externals file, in order, for
     a group whose match / reject clauses match the message in question. If a group does not
     contain any such clauses it automatically matches all messages. Match / reject clauses
     currently match only against headers, and use standard POSiX extended regular expressions
     (see re_format(7) for more details).  extsmaild(1) then tries each external in the group, in
     order, to send the message successfully.

     The grammar for this file is as follows:

           group    ::= { matches* external+ }

           matches  ::= match
                      | reject
           match    ::= MATCH HEADER string
           reject   ::= REJECT HEADER string

           external ::= EXTERNAL ID { defn+ }

           defn     ::= ID = STRING
                      | ID = TIME

           TIME     ::= [0-9]+[dhms]

     Valid assignments within an external are:

             Defines the external shell command used to send e-mail.

             If extsmaild(1) is executed in daemon mode, this value defines the length of time
             that extsmaild(1) will retry this external before giving up and trying the next
             external in the group. Times are specified as a number followed by d (days), h
             (hours), m (minutes), or s (seconds). If extsmaild(1) is executed in batch mode, the
             timeout value is ignored.


     The extsmail configuration file is searched for, in order, in the following locations:

             Per-user configuration.

             System-wide configuration.


     The simplest externals file sending e-mail via ssh(1) looks as follows:

           group {
               external mymachine {
                   sendmail = "/usr/bin/ssh -q -C -l user /usr/sbin/sendmail -t"
     where mymachine is a human-friendly name given to an external (it does not effect
     processing), and user is the username on the remote machine

     A more complex example using multiple groups, message matching, and multiple external
     commands looks as follows:

           group {
               match header "^To:.*"

               external foo {
                   sendmail = "/usr/bin/ssh -q -C -l user /usr/sbin/sendmail -t"

           group {
               external mymachine {
                   sendmail = "/usr/bin/ssh -q -C -l user /usr/sbin/sendmail -t"

               external bk {
                   sendmail = "/usr/bin/ssh -q -C -l user /usr/sbin/sendmail -t"


     extsmail(1), extsmail.conf(5), extsmaild(1)


     Laurence Tratt <>