EXTSMAIL.EXTERNALS(1)      OpenBSD Reference Manual      EXTSMAIL.EXTERNALS(1)

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

DESCRIPTION
     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 pairs.

     When sending messages extsmaild(1) first searches through the externals
     file, in order, for a group whose match / reject clauses match the mes-
     sage in question. If a group does not contain any such clauses it auto-
     matically 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 exter-
     nal 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:

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

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

FILES
     The extsmail configuration file is searched for, in order, in the follow-
     ing locations:

     ~/.extsmail/externals
             Per-user configuration.

     /etc/extsmail/externals
             System-wide configuration.

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

           group {
               external mymachine {
                   sendmail = "/usr/bin/ssh -q -C -l user mymachine.net /usr/sbin/sendmail"
               }
           }
     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
     mymachine.net.

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

           group {
               match header "^To:.*@foo.com"

               external foo {
                   sendmail = "/usr/bin/ssh -q -C -l user shell.foo.com /usr/sbin/sendmail"
               }
           }

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

               external bk {
                   sendmail = "/usr/bin/ssh -q -C -l user bk.mymachine.net /usr/sbin/sendmail"
               }
           }

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

AUTHORS
     Laurence Tratt <http://tratt.net/laurie/>

OpenBSD 4.7                    November 2, 2008                              2