manual Configuration Alias Format Frequently Asked Questions

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 '"'. If the expression is on multiple lines or contains characters other than letters, digits or the charcaters '.', '-', '_', '/', it must be quoted. Unfortunately, you cannot use quotes inside quotes. (Will be implemented in a later version.)

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 ';'. For some values patterns (like '*','?') can be used. The spaces before and after the '=' are optional.

Most lists (exceptions: local_hosts, local_nets and listen_addresses) 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 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 '#' are ignored.

Main Configuration

run_as_user, Type: boolean, default: false

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 < 1000 and will not be able to deliver local mail to others than the user.

use_syslog, Type: boolean, default: false

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, Type: numeric, default: 0

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.

mail_dir, Type: string, default: none

The directory where local mail is stored, usually /var/spool/mail.

spool_dir, Type: string, default: none

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.

log_dir, Type: string, default: none

The directory where masqmail puts its log files, these are masqmail.log and debug.log. Masqmail needs write permission.

host_name, Type: string, default: none

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.

It is not used to find whether an address is local. Use local_hosts for that.

local_hosts, Type: list, default: none

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, Type: list, default: none

A semicolon ';' separated list of hostnames which are on the 'local' net. Delivery to these hosts is attempted immediately. You can use patterns with '*', eg. "*.bar.com".

listen_addresses, Type: list, default: none

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'.

do_queue, Type: boolean, default: false

If this is set, mail will not be delivered immediately when accepted. Same as calling masqmail with the -odq option.

connect_route.<name>, Type: string, default: none

Replace <name> with a name to identify a connection. Set this to a filename 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:

connect_route.FastNet = "/etc/masqmail/fastnet.route"

/etc/masqmail/fastnet.route is the route configuration file, see below. As soon as a link to FastNet has been set up, you call masqmail -qoFastNet. Masqmail will then read the specified file and send the mails.

local_net_route, Type: string, default: none

This is similar to connect_route.<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

Set this to the location of your alias file. If unset, no aliasing will be done.

online_detect, Type: string, default: none

Defines the method MasqMail uses to detect whether there is currently an online connection. It can have the values file 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> (without a trailing newline character).

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 online status is checked either when masqmail receives a mail with an address outside your LAN or when called with the -qo option (without arguments).

online_file, Type: string, default: none

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 eg.

echo -n <name> > /tmp/connect_route
chmod 0644 /tmp/connect_route

Do not forget to delete it in your ip-down script.

mserver_iface, Type: string, default: none

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, eg. "foo:224".

get.<name>, Type: string, default: none

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.

Route Configuration

mail_host, Type: string, default: none

This is preferably the mail server of your ISP. All outgoing messages will be sent to this host which will distribute them to their destinations. If you do not set this mails will be sent directly. Because the mail server is probably 'near' to you, mail transfer will be much faster if you use it.

do_correct_helo, Type: boolean, default: false

If this is set, masqmail tries to look up your host name as it appears on the internet and sends this in the HELO/EHLO command. Some servers are so picky that they want this. Which is really crazy. It just does not make any sense to lie about ones own identity, because it can always be looked up by the server. Nobody should believe in the name given by HELO/EHLO anyway. If this is not set, host_name will be used.

allowed_mail_locals, Type: list, default: none(all)

This is a semicolon ';' separated list of local parts which will be allowed to send mail through this connection. If unset and not_allowed_mail_locals is also unset, all users are allowed.

not_allowed_mail_locals, Type: list, default: none

This is a semicolon ';' separated list of local parts which will be not allowed to send mail through this connection. Local parts in this list will not be allowed to use this route even if they are part of allowed_mail_locals (see above).

allowed_rcpt_domains, Type: list, default: none(all)

A list of recipient domains where mail will be sent to. This is for example useful if you use this route configuration when connected to another LAN via ppp. Patterns containing '?' and '*' can be used.

not_allowed_rcpt_domains, Type: list, default: none

A list of recipient domains where mail will not be sent to. This is for example useful if you send mail directly (mail_host ist not set) and you know of hosts that will not accept mail from you because they use a dialup list (eg. maps.vix.com/dul/). If any domain matches both allowed_rcpt_domains and not_allowed_rcpt_domains, mail will not be sent to this domain. Patterns containing '?' and '*' can be used.

set_h_from_domain, Type: string, default: none

Replace the domain part in 'From:' headers with this value. This may be useful if you use a private, outside unknown address on your local LAN and want this to be replaced by the domain of the address of your email addrsss on the internet. Note that this is different to set_return_path_domain, see below.

set_h_reply_to_domain, Type: string, default: none

Same as set_h_from_domain, but for the 'Reply-To' header.

set_return_path_domain, Type: string, default: none

Sets the domain part of the envelope from address. Some hosts check whether this is the same as the net the connection is coming from. If not, they reject the mail because they suspect spamming. It should be a valid address, because some mail servers also check that. You can also use this to set it to your usual address on the internet and put a local address only known on your LAN in the configuration of your mailer. Only the domain part will be changed, the local part remains unchanged. Use map_return_path_addresses for rewriting local parts.

map_h_from_addresses, Type: list, default: none

This is similar to set_h_from_domain, but more flexible. Set this to a list which maps local parts to a full RFC 822 compliant email address, the local parts (the keys) are separated from the addresses (the values) by colons (':').

Example:

map_h_from_addresses =
"john: John Smith <jsmith@mail.academic.edu>;
charlie: Charlie Miller <cmiller@mx.commercial.com>"

map_h_reply_to_addresses, Type: list, default: none

Same as map_h_from_addresses, but for the 'Reply-To:' header.

map_return_path_addresses, Type: list, default: none

This is similar to set_return_path_domain, but more flexible. Set this to a list which maps local parts to a full RFC 821 compliant email address, the local parts (the keys) are separated from the addresses (the values) by colons (':'). Note that this option takes RFC 821 addresses while map_h_from_addresses takes RFC 822 addresses. The most important difference is that RFC 821 addresses have no full name.

Example:

map_return_path_addresses =
"john: <jsmith@mail.academic.edu>;
charlie: <cmiller@mx.commercial.com>"

expand_h_sender_domain, Type: boolean, default: true

This sets the domain of the sender address as given by the Sender: header to the same domain as in the envelope return path address (which can be set by either set_return_path_domain or map_return_path_addresses). This is for mail clients (eg. Microsoft Outlook) which use this address as the sender address. Though they should use the From: address, see RFC 821. If fetchmail encounters an unqualified Sender: address, it will be expanded to the domain of the pop server, which is almost never correct.

auth_name, Type: string, default: none

Set the authentication type for ESMTP AUTH authentification. Currently only 'cram-md5' is supported.

auth_login, Type: string, default: none

Your account name for ESMTP AUTH authentification.

auth_secret, Type: string, default: none

Your secret for ESMTP AUTH authentification.

pop_login, Type: string, default: none

If your Mail server requires SMTP-after-POP, set this to a get configuration. If you login to the POP server before you send, this is not necessary. See the get configuration for more information.


Oliver Kurth
Last modified: Tue May 30 15:19:56 CEST 2000
This page was created using Genpage - Version: 1.0.6