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