NAME
masqmail.conf - masqmail configuration file
DESCRIPTION
This man page describes the syntax of the main configuration file of
masqmail. Its usual location is /etc/masqmail/masqmail.conf
The configuration consists of lines of the form
val = expression
Where val is a variable name and expression a string, which can be
quoted with double quotes `"'. If the expression is on multiple lines
or contains characters other than letters, digits or the characters
`.', `-', `_', `/', ';', '@', ':', it must be quoted. You can use
quotes inside quotes by escaping them with a backslash.
Each val has a type, which can be boolean, numeric, string or list. A
boolean variable can be set with one of the values `on', `yes', and
`true' or `off', `no' and `false'. List items are separated with
semicolons `;'. For some values, patterns (like `*',`?') can be used.
The spaces in front of and after the equal sign `=' are optional.
Most lists (exceptions: local_hosts, local_nets, listen_addresses,
online_routes, and online_gets) accept files. These will be
recognized by a leading slash `/'. The contents of these files will be
included at the position of the file name, there can be items or other
files before and after the file entry. The format of the files is
different though, within these files each entry is on another line and
the entries are not separated by semicolons. This makes it easy to
include large lists which are common in different configuration files,
so they do not have to appear in every configuration file.
Blank lines and lines starting with a hash `#' are ignored.
OPTIONS
run_as_user = boolean
If this is set, masqmail runs with the user id of the user who
invoked it and never changes it. This is for debugging purposes
only. If the user is not root, masqmail will not be able to
listen on a port < 1024 and will not be able to deliver local
mail to others than the user.
use_syslog = boolean
If this is set, masqmail uses syslogd for logging. It uses
facility MAIL. You still have to set log_dir for debug files.
debug_level = n
Set the debug level. Valid values are 0 to 6, increasing it
further makes no difference. Be careful if you set this as high
as 5 or higher, the logs may very soon fill your hard drive.
log_dir = file
The directory where logs are stored, if syslog is not used.
Debug files are always stored in this directory if debugging is
enabled. /var/log/masqmail is a common value. file must be an
absolute path.
mail_dir = file
The directory where local mail is stored, usually
/var/spool/mail or /var/mail. file must be an absolute path.
spool_dir = file
The directory where masqmail stores its spool files (and later
also other stuff). It must have a subdirectory input. Masqmail
needs read and write permissions for this directory. I suggest
to use /var/spool/masqmail. file must be an absolute path.
lock_dir = file
The directory where masqmail stores its lock files. Masqmail
needs read and write permissions for this directory. By default
it is a directory ``lock'' inside of spool_dir. file must be an
absolute path.
host_name = string
This is used in different places: Masqmail identifies itself in
the greeting banner on incoming connections and in the HELO/EHLO
command for outgoing connections with this name, it is used in
the Received: header and to qualify the sender of a locally
originating message.
If the string begins with a slash `/', it it assumed that it is
a filename, and the first line of this file will be used.
Usually this will be `/etc/mailname' to make masqmail conform to
Debian policies.
It is not used to find whether an address is local. Use
local_hosts for that.
remote_port = n
The remote port number to be used. This defaults to port 25.
This option is deprecated. Use host_name in the route
configuration instead. See masqmail.route(5).
local_hosts = list
A semicolon `;' separated list of hostnames which are considered
local. Normally you set it to "localhost;foo;foo.bar.com" if
your host has the fully qualified domain name `foo.bar.com'.
local_nets = list
A semicolon `;' separated list of hostnames which are on the
`local' net. Delivery to these hosts is attempted immediately.
You can use patterns with `*', e.g. "*.bar.com".
local_addresses = list
A semicolon `;' separated list of fully qualified email-
addresses which are considered local although their domain name
part is not in the list of local_hosts.
For example: There are two people working at your LAN:
person1@yourdomain and person2@yourdomain. But there are other
persons @yourdomain which are NOT local. So you can not put
yourdomain to the list of local_hosts. If person1 now wants to
write to person2@yourdomain and this mail should not leave the
LAN then you can put
local_addresses = "person1@yourdomain;person2@yourdomain"
to your masqmail.conf.
not_local_addresses = list
A semicolon `;' separated list of fully qualified email-
addresses which are considered not local although their domain
name part is in the list of local_hosts.
This is the opposite of the previous case. The majority of
addresses of a specific domain are local. But some users are
not. With this option you can easily exclude these users.
Example:
local_hosts = "localhost;myhost;mydomain.net"
not_local_addresses = "eric@mydomain.net"
listen_addresses = list
A semicolon `;' separated list of interfaces on which
connections will be accepted. An interface ist defined by a
hostname, optionally followed by a colon `:' and a number for
the port. If this is left out, port 25 will be used.
You can set this to "localhost:25;foo:25" if your hostname is
`foo'.
Note that the names are resolved to IP addreses. If your host
has different names which resolve to the same IP, use only one
of them, otherwise you will get an error message.
do_save_envelope_to = boolean
If this is set to true, a possibly existing Envelope-to: header
in an incoming mail which is received via either pop3 or smtp
will be saved as an X-Orig-Envelope-to: header.
This is useful if you retrieve mail from a pop3 server with
either masqmail or fetchmail, and the server supports Envelope-
to: headers, and you want to make use of those with a mail
filtering tool, e.g. procmail. It cannot be preserved because
masqmail sets such a header by itself.
Default is false.
do_relay = boolean
If this is set to false, mail with a return path that is not
local and a destination that is also not local will not be
accepted via smtp and a 550 reply will be given. Default is
true.
Note that this will not protect you from spammers using open
relays, but from users unable to set their address in their mail
clients.
do_queue = boolean
If this is set, mail will not be delivered immediately when
accepted. Same as calling masqmail with the -odq option.
online_routes.name = list
Replace name with a name to identify a connection. Set this to
a filename (or a list of filenames) for the special route
configuration for that connection. You will use that name to
call masqmail with the -qo option every time a connection to
your ISP is set up.
Example: Your ISP has the name FastNet. Then you write the
following line in the main configuration:
online_routes.FastNet = "/etc/masqmail/fastnet.route"
/etc/masqmail/fastnet.route is the route configuration file, see
masqmail.route(5). As soon as a link to FastNet has been set
up, you call masqmail -qo FastNet. Masqmail will then read the
specified file and send the mails.
connect_route.name = list
Old name for online_routes.
local_net_route = file
This is similar to online_routes.name but for the local net.
Recipient addresses that are in local_nets will be routed using
this route configuration. Main purpose is to define a mail
server with mail_host in your local network. In simple
environments this can be left unset. If unset, a default route
configuration will be used.
alias_file = file
Set this to the location of your alias file. If unset, no
aliasing will be done.
alias_local_caseless = boolean
If this is set, local parts in the alias file will be matched
disregarding upper/lower case.
pipe_fromline = boolean
If this is set, a from line will be prepended to the output
stream whenever a pipe command is called after an alias
expansion. Default is false.
pipe_fromhack = boolean
If this is set, each line beginning with `From ' is replaced
with `>From ' whenever a pipe command is called after an alias
expansion. You probably want this if you have set pipe_fromline
above. Default is false.
mbox_default = string
The default local delivery method. Can be one of mbox, mda or
maildir (the latter only if maildir support is enabled at
compile time). Default is mbox. You can override this for each
user by using the mbox_users, mda_users, or maildir_users
options (see below).
mbox_users = list
A list of users which wish delivery to an mbox style mail
folder.
mda_users = list
A list of users which wish local delivery to an mda. You have
to set mda (see below) as well.
maildir_users = list
A list of users which wish delivery to a qmail style maildir.
The path to maildir is ~/Maildir/. The maildir will be created
if it does not exist.
mda = expand string
If you want local delivery to be transferred to an mda (Mail
Delivery Agent), set this to a command. The argument will be
expanded on delivery time, you can use variables beginning with
a dolloar sign `$', optionally enclosed in curly braces.
Variables you can use are:
uid - the unique message id. This is not necessarily identical
with the Message ID as given in the Message ID: header.
received_host - the host the mail was received from
ident - the ident, this is either the ident delivered by the
ident protocol or the user id of the sender if the message was
received locally.
return_path_local - the local part of the return path (sender).
return_path_domain - the domain part of the return path
(sender).
return_path - the complete return path (sender).
rcpt_local - the local part of the recipient.
rcpt_domain - the domain part of the recipient.
rcpt - the complete recipient address.
Example:
mda="/usr/bin/procmail -Y -d ${rcpt_local}"
For the mda, as for pipe commands, a few environment variables
will be set as well. See masqmail(8). To use environment
variables for the mda, the dollar sign `$' has to be escaped
with a backslash, otherwise they will be tried to be expanded
with the internal variables.
mda_fromline = boolean
If this is set, a from line will be prepended to the output
stream whenever a message is delivered to an mda. Default is
false.
mda_fromhack = boolean
If this is set, each line beginning with `From ' is replaced
with `>From ' whenever a message is delivered to an mda. You
probably want this if you have set mda_fromline above. Default
is false.
online_detect = string
Defines the method masqmail uses to detect whether there is
currently an online connection. It can have the values file,
pipe, or mserver.
When it is set to file, masqmail first checks for the existence
of online_file (see below) and if it exists, it reads it. The
content of the file should be the name of the current connection
as defined with connect_route.name (trailing whitespace is
removed).
When it is set to pipe, masqmail calls the executable given by
the online_pipe option (see below) and reads the current online
status from its standard output.
When it is set to mserver, masqmail connects to the masqdialer
server using the value of mserver_iface and asks it whether a
connection exists and for the name, which should be the name of
the current connection as defined with connect_route.name. The
mserver detection method is OBSOLETE. See mserver_iface for a
note on how to replace it.
No matter how masqmail detects the online status, only messages
that are accepted at online time will be delivered using the
connection. The spool still has to be emptied with masqmail
-qoconnection.
online_file = file
This is the name of the file checked for when masqmail
determines whether it is online. The file should only exist
when there is currently a connection. Create it in your ip-up
script with e.g.
echo "connection-name" >/var/run/masqmail/masqmail-route
chmod 0644 /var/run/masqmail/masqmail-route
Do not forget to delete it in your ip-down script.
online_pipe = file
This is the name of the executable which will be called to
determine the online status. This executable should just print
the name of the current connection to the standard output and
return a zero status code. masqmail assumes it is offline if
the script returns with a non zero status. Simple example:
#!/bin/sh
[ -e /var/run/masqmail/masqmail-route ] || exit 1
cat /var/run/masqmail/masqmail-route
exit 0
Of course, instead of the example above you could as well use
file as the online detection method, but you can do something
more sophisticated.
mserver_iface = interface
This option is OBSOLETE, use
online_method=pipe
online_pipe="/usr/bin/mservdetect localhost 222"
instead.
The interface the masqdialer server is listening to. Usually
this will be "localhost:224" if mserver is running on the same
host as masqmail. But using this option, you can also let
masqmail run on another host by setting mserver_iface to another
hostname, e.g. "foo:224".
get.name = file
Replace name with a name to identify a get configuration. Set
this to a filename for the get configuration. These files will
be used to retrieve mail when called with the -g option.
online_gets.name = list
Replace name with a name to identify an online configuration.
Set this to a filename (or a list of filenames) for the get
configuration. These files will be used to retrieve mail when
called with the -go option.
ident_trusted_nets = list
list is a list of networks of the form a.b.c.d/e (e.g.
192.168.1.0/24), from which the ident given by the ident
protocol will be trusted, so a user can delete his mail from the
queue if the ident is identical to his login name.
errmsg_file = file
Set this to a template which will be used to generate delivery
failure reports. Variable parts within the template begin with
a dollar sign and are identical to those which can be used as
arguments for the mda command, see mda above. Additional
information can be included with @failed_rcpts, @msg_headers and
@msg_body, these must be at the beginning of a line and will be
replaced with the list of the failed recipients, the message
headers and the message body of the failed message.
Default is /usr/share/masqmail/tpl/failmsg.tpl.
warnmsg_file = file
Set this to a template which will be used to generate delivery
warning reports. It uses the same mechanisms for variables as
errmsg_file, see above.
Default is /usr/share/masqmail/tpl/warnmsg.tpl.
warn_intervals = list
Set this to a list of time intervals, at which delivery warnings
(starting with the receiving time of the message) shall be
generated.
A warning will only be generated just after an attempt to
deliver the mail and if that attempt failed temporarily. So a
warning may be generated after a longer time, if there was no
attempt before.
Default is "1h;4h;8h;1d;2d;3d"
max_defer_time = time
This is the maximum time, in which a temporarily failed mail
will be kept in the spool. When this time is exceeded, it will
be handled as a delivery failure, and the message will be
bounced.
The excedence of this time will only be noticed if the message
was actually tried to be delivered. If, for example, the
message can only be delivered when online, but you have not been
online for that time, no bounce will be generated.
Default is 4d (4 days)
log_user = name
Replace name with a valid local or remote mail address.
If this option is set, then a copy of every mail, that passes
through the masqmail system will also be sent to the given mail
address.
For example you can feed your mails into a program like
hypermail for archiving purpose by placing an appropriate pipe
command in masqmail.alias
max_msg_size = bytes
This option sets the maximum size in bytes masqmail will accept
for delivery. This value is advertised to the SMTP client by
the `SIZE' message during SMTP session setup. Clients
pretending to send, or actually send, more than bytes will get a
552 error message.
`0' means no fixed maximum size limit is in force.
Default is 0 (= unlimited).
defer_all = boolean
If set to true, masqmail replies with ``421 service temporarily
unavailable'' to any SMTP request and shuts the connection down.
Note: This option is for debugging purposes only.
Default: false
AUTHOR
Masqmail was written by Oliver Kurth. It is now maintained by Markus
Schnalke <meillo@marmaro.de>.
You will find the newest version of masqmail at
http://marmaro.de/prog/masqmail/. There is also a mailing list, you
will find information about it at masqmail's main site.
BUGS
Please report bugs to the mailing list.
SEE ALSO
masqmail(8), masqmail.route(5), masqmail.get(5)