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
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:
- 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 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.
FILES¶
The
extsmail configuration file is searched for, in order, in
the following 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 multiple
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/⟩