|
|
| |
masqmail.conf(5) |
File Formats |
masqmail.conf(5) |
masqmail.conf - masqmail configuration file
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 `;'. The spaces around the equal sign `=' are optional.
All lists, except query_routes.name and
permanent_routes, accept absolute pathnames (leading slash `/') as
entries, too. They can be intermixed with normal entries. The contents of
these files will be included at this position in the list. This makes
including large lists more convenient. Within these files, each line is one
entry; the semicolon is no separator.
Blank lines and lines starting with a hash `#' are ignored.
- 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 and 9. Be careful
if you set this as high as 5 or higher, the logs may very soon fill your
hard drive. Level 9 enables printing of debug messages to stderr during
reading of the config file. The debug file comes available for the first
time after this step. Thus nothing but stderr is available. Level 9 is
almost never interesting.
- 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.
file must be an absolute path.
Default: /var/log/masqmail
- mail_dir = file
-
The directory where local mail is stored, usually
/var/spool/mail or /var/mail. file must be an
absolute path.
Default: /var/mail
- spool_dir = file
-
The directory where masqmail stores its spool files (and lock
files if run_as_user). Masqmail needs read and write permissions
for this directory. file must be an absolute path.
Default: /var/spool/masqmail
- lock_dir = file
-
The directory where masqmail stores its lock files. Masqmail
needs read and write permissions for this directory. The default is
/var/lock/masqmail for normal operation. file must be an
absolute path. The directory is created on startup if yet missing.
If run_as_user then lock files are stored in the
spool_dir directly and the lock_dir setting is
ignored.
- 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.
Default: none; host_name MUST be set in the config
file
- local_hosts = list
-
A semicolon `;' separated list of hostnames which are
considered local. Can contain glob patterns, like `*example.org' or
`mail?.*mydomain.net'. Normally you should set it to
"localhost;foo;foo.bar.com" if your host has the fully
qualified domain name `foo.bar.com'.
Default: localhost ; <value of host_name cut at the
first dot> ; <value of host_name>
Example: localhost;foo;foo.example.org (if you have set
host_name to foo.example.org)
- 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. This list can be seen as
an addition to local_hosts.
- Further more only the local part of the addresses will be regarded, seeing
it as a local user.
Example:
local_hosts = "localhost;myhost"
local_addresses = "bob@somewhere;alice@foo"
- This means mail to person1@yourdomain will effectively go to
person1@localhost, if not redirected by an alias.
- 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 list can be seen as
a substraction to 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.
Default: localhost:25 (i.e. only local processes can
connect)
- 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
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, masqmail will not try to deliver mail
immediately when accepted. Instead it will always queue it. (Note:
Masqmail will always automatically queue mail if necessary, i.e. if it
cannot deliver because no suitable route was available for example.)
Same as calling masqmail with the -odq option. Usually
you should leave this option unset.
Default: false
- permanent_routes = list
-
Set this to the filename (or a semicolon-separated list of
filenames) of the route configuration for always available connections.
Main purpose is to define a mail server with mail_host in your local
network, or if masqmail should send mail directly to the target host. If
you have only a single host, you can leave it unset.
A setting `local_nets = "*home.net"'
in versions <= 0.3.3 is in newer versions configured as:
`permanent_routes =
"/etc/masqmail/homenet.route"' and the route file
`homenet.route' containing:
allowed_recipients = "*@*home.net"
connect_error_fail = true
resolve_list = byname
-
This is just as it had been with local_net_route, with
the exception that the filtering for appropriate addresses is only in
the route file and not with local_nets.
- query_routes.name = list
-
Replace name with a name to identify the connection.
Set this to a filename (or a semicolon-separated list of filenames) for
the route configuration for that connection.
Routes of this kind cannot be expected to be online always.
Masqmail will query which of the routes are online.
You can use the name to call masqmail with the -qo
option every time a connection to your ISP is set up, in order to send
queued mail through this route.
Example: Your ISP has the name FastNet. Then you write the
following line in the main configuration:
query_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.
See online_query.
- alias_file = file
-
Set this to the location of your alias file. If not set, no
aliasing will be done.
Default: <not set> (i.e. no aliasing is done)
- globalias_file = file
-
Set this to the location of a glob-pattern alias file. This
kind of aliasing matches glob patterns against full email addresses, not
strings against local parts like in normal aliasing. You can use this to
handle catch-all maildrops (``*@example.org'') and to split between
virtual hosts on a single machine (e.g. ``info@foo.ex.org'' and
``info@bar.ex.org'').
Glob aliasing is done before normal aliasing. If you have both
kinds, glob and normal aliasing, then the results of the glob aliasing
may be expanded further by the normal aliasing mechanism.
Default: <not set> (i.e. no glob aliasing is done)
- caseless_matching = boolean
-
If this is set, aliasing and the matching for
local_addresses and not_local_addresses will be done
caseless.
Note: Be sure to change this option only if the queue is empty
as correct processing of queued messages is not guaranteed
otherwise.
Default: false
- 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 mbox or mda. You can
override this for each user by using the mbox_users or
mda_users (see below).
Default: mbox.
- 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.
- 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 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_query = command line
-
Defines the method masqmail uses to detect whether there
exists an online connection currently.
Masqmail executes the command given and reads from its
standard output. The command should just print a route name, as defined
with query_routes.name, to standard output and return a
zero status code. Masqmail assumes it is offline if the script returns
with a non-zero status. Leading and trailing whitespace is removed from
the output.
Simple example:
#!/bin/sh
test -e /var/tmp/masqmail-route || exit 1
cat /var/tmp/masqmail-route
exit 0
-
No matter how masqmail detects the online status, only
messages that are accepted at online time will be delivered using the
connection. The mail spool still needs to be emptied manually
(-qo connection).
command line must start with an absolute path to an
executable program. It can contain optional arguments.
To simulate the old online_method=file, use:
/bin/cat /path/to/file
-
To be always online with connection `foo', use:
/bin/echo foo
-
To query a masqdialer server (i.e. asking it whether a
connection exists and what its name is) use:
/usr/bin/mservdetect localhost 224
-
- 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.
A zero value disables the maximum size limit.
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
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.
Please report bugs to the mailing list.
masqmail(8), masqmail.route(5)
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |