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 addresses. 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)