pmx.conf - The main PureMessage configuration file
/opt/pmx/etc/pmx.conf
<milter Policy> port = inet:10025@127.0.0.1 filter = PureMessage::Milter::Policy message_log = message_log smtp_talk_port = inet:10026@127.0.0.1 </milter>
<milter Name_B> port = local:/tmp/B.sock enabled = yes </milter>
log_dir = __DEFAULT__ run_dir = __DEFAULT__ log_to = __DEFAULT__ log_utc = __DEFAULT__ stdout = __DEFAULT__ stderr = __DEFAULT__ quarantine_dir = __DEFAULT__ umask = __DEFAULT__ quarantine_secret = jSAnHoM4BHxYWfQS mail_sender = smtp:localhost:10026 admin = PureMessage Admin <postmaster@DomainName.com> buffer_size = __DEFAULT__ block_size = __DEFAULT__ use_threads = __DEFAULT__ max_pooled_procs = __DEFAULT__ mime_max_part_headers = __DEFAULT__ min_pooled_procs = __DEFAULT__ pooled_proc_idle_limit = __DEFAULT__ pooled_proc_connect_limit = __DEFAULT__ preload_interpreters = __DEFAULT__ thread_stack_size = __DEFAULT__ reinit_limit = __DEFAULT__ concurrency_limit = __DEFAULT__ concurrency_limit_action = __DEFAULT__ debug_level = 0 time_connection = __DEFAULT__ time_message = __DEFAULT__
!include pmx.d/*.conf quarantine_type = pmdb pmx_db = postgres
This configuration file consists of a sequence of named <milter> and possibly
<filter> sections as well as numerous settings outside these blocks that
configure various aspects of PureMessage. The names of both types of blocks
must be unique. Milter names are important as they are used to refer back to
the milters within the pmx-milter
tool. The example shown above specifies
two milters ('milter Policy' and 'milter Name B').
One or more filters (see below) may be executed within a milter.
pmx.conf describes all of the milters that should be running, and the
pmx-milter
program can be used to start, stop and monitor these milters.
The following configuration options are available:
pmx-milter
program can be used to
start, stop and monitor these milters.
A default milter section called Policy
is created during the PureMessage
installation. Use the pmx-milter-add
program or edit this configuration
file to create additional milters. (See the pmx-milter-add manpage for more
information.)
smtp_talk_port
for a description
of what type of protocol traffic is expected on this port.
This option can only occur inside a milter
section. It is mandatory
if there is more than one milter
section. The port must be unique
for all enabled milters, and must correspond to the port on which
sendmail is sending messages. The default is inet:3366@localhost
.
If the MTA is running on a different host, the host
part of the
port
setting must be set to the hostname
of the PureMessage server.
The default setting of localhost
will not allow external connections.
This option must be set for mail filtering with Postfix, and should be left unset for mail filtering with sendmail.
Setting this option enables the mail filter to function as an SMTP
Proxy Server, meaning that the mail filter will listen for incoming
SMTP connections at the location specified by port
, and feed
the filtered SMTP traffic back to the location specified by
smtp_talk_port
. Leaving it unset makes the mail filter behave
as a Milter protocol server. In other words, setting or unsetting
this option toggles the mail filter between SMTP Proxy Server or
Milter Server modes of operation.
log_dir
. There is no default.
See also: the pmx-mlog manpage, the pmx-mlog-watch manpage
pmx_route
policy action with the :nobounce
parameter.
perl_args
is interpreted by perl. It
can be used to set up extra inc paths or to enable warnings.
The ``args'' show up as @ARGV.
They are specified separately so that all milters may share
the same perl_args
setting while having individually different
args
.
relay_use_header
is a boolean that explicitly switches on header scanning.
This option does not need to be set if running in SMTP Proxy Server mode.
The default is ``no''.
relay_from_header
is a string that identifies the header to look
for. The value is case insensitive. The default is ``received''.
relay_from_regex
is a regular expression that is used to match the
relay address from the selected header value of the message. Example:
relay_from_regex = /^from .*? \((.*?)\)/
The first matched value found is used as the relay. The above example is the default regular expression used.
Valid relay address data that is selected by the regular expression is any sequence of space-separated hostnames and IP addresses. Individual hostnames or addresses may be optionally surrounded by square brackets. Example:
host.company.com [123.123.123.123]
relay_from_index
indicates which among the possibly multiple
occurrences of the header to match against. The default is 0,
which corresponds to the first such header encountered. A value
of 1 refers to the second header, etc.
Note: Many of the pmx.conf entries are set to the value __DEFAULT__. These are values that are computed at run time based on the system configuration and environment. Refer to the output of pmx-config to find their specific values on your system.
log_dir
specified above. The default is 'pmx_log'.
See also: the pmx-log manpage, the pmx-log-summary manpage
log_dir
specified above. The default is 'pmx_out'.
log_dir
specified above. The default is 'pmx_err'.
See also: the pmx-qman manpage
quarantine_secret
value is added to the message
to bypass PureMessage filters. There is no default; it is uniquely
configured for each site during the PureMessage installation.
stat()
. Acceptable
values for block_size
are powers of 2 between 512 and 2,097,152, inclusive.
Higher values will potentially improve speed at the cost of higher memory consumption. It is not recommended that you use values lower than the default, and that larger values be exact multiples of the default value. The current default value used by PureMessage can be found in the output of the 'pmx config' command, with block_size set to __DEFAULT__.
When the concurrency limit is reached and the process pool is enabled,
PureMessage stops accepting connections on its port (see port
).
Connections queue up until they overflow the TCP stack's listen queue,
after which they are refused.
max_proto_data_size
setting. These settings
should be consistent with the MIME headers setting for your MTA.
When the process pool is enabled, this option specifies how long a process in the pool can stay idle before it goes away. The default is 5m.
max_pooled_procs
.
To use this option, max_pooled_procs
must be zero, and the
use_threads
option must be enabled. Run pmx config
to
determine these values.
This option specifies the action to take if the concurrency_limit
is
reached. Valid option values are 'wait', 'tempfail' or 'accept'.
The default is 'tempfail'.
Selects the verbosity in the milter log specified in
the log_to
option (as described above). Higher numbers
result in more verbose logging. The default is 0, which means
log messages with 'DEBUG' priority are suppressed.
See also: the pmx-log manpage, the pmx-log-summary manpage
log_to
option for the time spent on each
connection. The default is 'off'.
See also: the pmx-log manpage, the pmx-log-summary manpage
log_to
option for the time spent
on each message. The default is 'off'.
See also: the pmx-log manpage, the pmx-log-summary manpage
To configure PureMessage to process messages before all
data is received, add avoid_message_splitting = false
to pmx.conf. This
disables user-specific language settings; only the default language preference
is used. Per-recipient tests in the policy script ignore this option. This option
is only recommended if you want to increase performance by rejecting or discarding
messages early, and you have no need for per-recipient functionality.
This sets the default language for the PureMessage installation.
Sets the limit (in bytes) for the size of data used in protocol operations. Among other things, the limit applies to the total size of header data allowed in messages. The default value is 65535.
This limit can only be changed to a value that the connecting MTA will be capable of supporting.
pmx_db
)
or dir (Filesystem based indexes).
Note: In accordance with RFC 2822, the default behavior of PureMessage is to alter the Message-ID header whenever any of the message parts have changed. The following options allow you to alter this behavior to suit your environment. It is recommended that you contact support before applying either of these options.
preserve_msgid
setting described
above. Edit pmx.conf to include this line if you do not want message header
changes to trigger the generation of a new Message-ID. Only changes to the
message body will result in a new Message-ID. If preserve_msgid = 1
is also
specified, then that setting will override this one.
pmx-manager restart
to make the change take effect, or,
if you are viewing and searching the quarantine via the Groups Web Interface,
run pmx-httpd restart
.
See also the pmx-config manpage, the command-line application used to edit PureMessage configuration, and the quarantine_expire.conf manpage as the settings in that file are sometimes saved in pmx.conf.
Copyright (C) 2000-2009 Sophos Group. All rights reserved. Sophos and PureMessage are trademarks of Sophos Plc and Sophos Group.