NAME
gnarwl ‐ GNU Neat Autoreply With LDAP
SYNOPSIS
gnarwl [‐h] [‐c <cfgfile>] [‐a <address>] [‐s <address>]
DESCRIPTION
gnarwl is an email autoresponder, intended to be a
vaction(1) program. Since a modern mailserver, usually
(or even thousands) of mailaccounts, it is not
(untrusted) users shell access so they may create/maintain
file, required by vacation(1).
With gnarwl , all user‐suplied data is stored within an
so there are no per user ".forward" files (or even
Configuration is conveniently done via one systemwide
configfile.
Like the old vacation(1) program, gnarwl accepts incomming
stdin, and will send outgoing mail via an external MTA (it
tains basic commandline compatibility, so it may be used
replacement).
Several gdbm databases are maintained, in order to make
does not bounce back and force between gnarwl and
MUA, b) mailing lists will not be bothered and c)
addresses may never produce automatic replies. All
files may be managed using the damnit(8) program.
OPTIONS
‐c <cfgfile>
Use a different configfile than the one, compiled
in.
‐a <alias>
Force <address> as receiving address.
‐s <address>
Force <address> as sending address.
‐h Print usage information.
CONFIGURATION
gnarwl typically uses one global configurationfile, but a
up is also possible using the ‐c commandline switch. The
words are recognized in the configfile:
map_sender <macroname>
Binds a macroname (case insensitive), refering to
an incomming email. Defaults to "$sender".
map_receiver <macroname>
Binds a macroname (case insensitive),
receiver(s) of an incomming email. Defaults to
"$receiver".
map_subject <macroname>
Binds a macroname (case insensitive), refering to
an incomming email. Defaults to "$subject".
map_field <ldapattribute> <macroname>
Binds a macroname (case insensitive), refering to a
resultset, returned by the database. There are no
this directive.
server <address>
Address of the databaseserver to query. Defaults to
localhost.
port <portnumber>
Port, the LDAP server listens on. Defaults to 389.
scope <base|one|sub>
The scope used for searching the database. Default
login <string>
Destinguished name to bind with to the LDAP
to bind anonymously.
password <string>
Password to use for binding to the LDAP database.
is required to access the server, then the
belong to the gnarwl user and have file permission
0400.
base <destinguished name>
Entrypoint of the search. There is no default for
tive, it must be supplied by the administrator.
protocol <0|2|3>
Select protocol to bind to the ldapserver. The
which means "autodetect".
queryfilter <ldap queryfilter>
Search pattern to match against the database.
"(&(mail=$recepient)(vacationActive=TRUE)".
result <ldap attribute>
The name of the attribute, that is to be taken as
The content of this field will be pasted in
found via forceheader and forcefooter directives.
remaining macros are expanded in the order of
the result will be piped through to the MTA.
blockfiles <directory>
The directory, where gnarwl stores it’s
are required to keep track on who was sent an
Default
is:
"/build/buildd/gnarwl‐3.6.dfsg/debian/gnarwl/var/lib/gnarwl/block/".
umask <mode>
What permission to give newly generated
default is 0600.
blockexpire <number>
How long (in hours) to block a certain
Default is 48 hours. Setting <number> to 0
(not recommended). No blockfiles are read/written
maxreceivers <number>
Ignore incomming email, specifying too many
It does not matter, whether these are local or
not, as gnarwl
doesn’t know domains. Default is 256.
maxheader <number>
Ignore incomming email with more than this
lines. Lines are counted before unfolding them, so
really counts as at least two lines. Default is
256.
badheaders <filename>
Path to a database file, containing matching
mailheader. If an entry stored in this file
the header exactly, then this mail will be ignored
by gnarwl is
deactivated by default.
blacklist <filename>
Pointer to a database file, containing
emailaddresses, gnarwl is
not allowed to generate automatic replies for
(useful to prevent
automatic replies from addresses, which are
people). This feature is deactivated by default.
forceheader <filename>
Path to a text file, containing a standardized
to be pasted in front of every outgoing mail.
end with a single empty line. Otherwise it is
users are allowed to continue the header and
separating empty line themselves. Default is not
thing (that is: The user has to supply the
"result" attribute).
forcefooter <filename>
Path to a text file, containing a standardized
to be appended at the end of every generated mail.
not to force anything.
mta <prog> [<args>]
Specify MTA for sending mail. It must be able to
STDIN. Default is "/usr/sbin/sendmail".
charset <encoding>
LDAP stores text in unicode, which is ok, as
mail doesn’t contain any non ASCII characters.
specific characters (like german umlaute) end
glyphs. With the "charset" directive, gnarwl tries
these to the correct symbols. The <encoding>
tain a string recognized by iconv(3). Default is
convert anything (assume US‐ASCII charset / MIME
recvheader <string>
A whitespace separated list of headers (case does
which may contain receiving addresses. Defaults to:
"To Cc".
loglevel <0|1|2|3>
Specifies what to send to the syslog. A higher
ically includes all lower loglevels (see section
information).
SYSLOG
Since gnarwl is not meant to be invoked by anything but
it’ll never print out messages to the systemconsole, but
syslog(3), using the facility "mail". A log line is always
lowing format:
<level>/<origin> <message>
The <level> field indicates the severity of the message,
to the "loglevel" config directive. Possible values are:
CRIT (loglevel 0)
Critical messages. gnarwl cannot continue and will
die with a
non‐zero exit code. This usually causes the
mail.
WARN (loglevel 1)
A warning. gnarwl can will continue, but
full/intended functionality.
INFO (loglevel 2)
Status information. A message in the INFO
normal behaviour.
DEBUG (loglevel 3)
Debugging information. gnarwl will log a lot of
information on
how mail is processed.
The <origin> field gives a short hint about what caused
in question, while <message> contains a short description
ally happened.
AUTHOR
Patrick Ahlbrecht <p.ahlbrecht@billiton.de>
SEE ALSO
vacation(1), postfix(1), iconv(1), damnit(8), rfc822
FILES
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/etc/gnarwl.cfg
main configuration file.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/.forward
forward file for the mailsystem.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/blacklist.db
gnarwl won’t send an autoreply for anyone whose
listed herin.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/badhead
ers.db
gnarwl will ignore mail, it is able to match a
an entry in this file. Case is significant, no
expanded.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/header.txt
Standard header to paste in front of every outgoing
mail.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/footer.txt
Standard footer to append to every outgoing mail.
/build/buildd/gnarwl3.6.dfsg/debian/gnarwl/var/lib/gnarwl/block/*
block files.