The options section consists of a series of option assignments. Each option is given as

Optionname = "option value"

The text to the left of the '=' sign is the name of the option. Available options are listed below. The text to the right is the value you want to specify for the option. It must be a string quoted by double-quotes ("). If you need to insert a literal double-quote into the value, precede it with a blacslash (like this: \").

Available options are:


This option controls where chainmail maintains its log. The value can be either "SYSLOG", in which case the system log will be used, or a full path to a file where log will be kept. In case when the system log is used, messages are logged with "mail" facility, so they end up in the same log file where your Sendmail® log is. If the option is not given at all, no logging will be performed.

Default: no logging


LogFile = "/var/log/chainmail.log"


This option controls how much inforatiom chainmail writes to its log file. Possible values are:

  • "error" - only errors are logged

  • "warnings" - errors and warnings are logged

  • "info" - errors, warnings and informational messages are logged

  • "debug" - a lot of debug information is logged. Only useful if you debug chainmail

Default: "warning"


LogLevel = "info"


This option is only useful for debugging. It determines which subsystems ("facilities") of chainmail are allowed to output information to the log. The value can be either "all", in which case all subsystems will log out information, or a comma-separated list of facilities: "general", "milter", "rule", "match", "update", "action". You should not change the value of this option, unless you have read chainmail source code and understand what you are doing.

Default: "all"


LogFacilityMask = "match,action"


This option gives the path to chainmail socket. It is either unix domain (local) or a TCP socket, through which Sendmail® communicates to chainmail. The syntax for this option value is the one Sendmail® uses for milter sockets. In short, it can be:

  1. For a unix domain (local) -- full path to socket, optionally prefixed with unix: or local:;

  2. For a TCP socket: inet:<port>@<hostname>.

Refer to libmilter documentation for more details.

Note that if you specify a non-default value here, you need to update the chainmail milter definition in sendmail.mc accordingly.

Default: "local:/var/run/chainmail.sock"


  SocketPath = "inet:2500@localhost"


This option specifies the path to chainmail control socket. Control socket is used by the companion utility chainmailctl to communicate to chainmail. See section Chapter 5 for more information on chainmailctl. The value of this option must be a full path name to the socket.

Default: "/var/run/chainmail.ctl"


ControlSocketPath = "/tmp/chainmail.control"