polic-spf.conf
Section: File Formats (5)
Index
Return to Main Contents
NAME
policy-spf
-
policy-spf python configuration parameters
VERSION
3.1.0
USAGE
Usage:
policy-spf [/etc/policy-spf/policy-spf.conf]
OTHER DOCUMENTATION
This documentation assumes you have read Postfix's README_FILES/
SMTPD_POLICY_README and are generally familiar with Sender Policy Framework
(SPF). See RFC 7208 for details.
man 1 policy-spf provides general operation documentation for this
package.
man 5 policy-spf.peruser provides documentation on setting up and using
different configuration options on a per user (mail reciepient) basis.
SYNOPSIS
sp-engine provides both a Postfix policy server front end and a milter front
end that can be used with any mail server which supports the milter protocol.
Most options apply to both policy server and milter usage. Options specific
to the milter are listed at the end. The package operates with a default
installed configuration file and set of default configuration options that are
used if the configuration file cannot be found. These options can be changed
by changing the installed configuration files or through giving a path to an
alternate configuration file.
DESCRIPTION
Additionally, whitelisting certain IP addresses from SPF checks is supported.
This man page and the sample configuration file show the format to use.
These options can be adjusted on a per user (mail recipient) basis. Details
on per user settings can be found in policy-spf.peruser(5). Per user
settings are applicable only to the policy server.
OPTIONS
LOGGING
"debugLevel" controls the amount of information logged by the policy server.
The default, 1, logs no debugging messages, just basic policy results and errors
generated through the policy server. This value can be increased up to 5
(values higher than 5 will not cause an error, but will not log any additional
information).
debug level 2 adds a log message if no client address (IP address from which
the connection was made), Mail From address, or HELO/EHLO name is received by
the policy server, and logs SPF results for each Mail From and HELO check.
debug level 3 generates a log message each time the policy server starts and
each time it exits, as well as logging a copy of the exact header returned to
Postfix to be prepended into the message. Each time the policy server starts,
debug level 3 also logs the configuration information used by the policy
server.
debug level 4 logs the complete data set received by Postfix via the policy
interface and when the end of the entry is read.
debug level 5 is used to debug config file processing and, for this purpose,
can only be set in code and not via the config file. It also provides
additional internal status details generally of interest only to developers.
If debug level is 0, then the policy server logs errors only.
When set to-1, nothing is logged once the configuration file has been read
in, not even error messages. Use with caution.
Default:
debugLevel = 1
TEST OPERATION
The policy server can operate in a test only mode. This allows you to see the
potential impact of SPF checking in your mail logs without rejecting mail.
Headers are prepended in messages, but message delivery is not affected. This
mode is not enabled by default. To enable it, set TestOnly = 0. If you want
test operation with no header added, also set Header_Type = None.
Note: This option was previously named defaultSeedOnly. This is still
accepted, but logs an error.
Default:
TestOnly = 1
HELO/EHLO CHECKING
HELO check rejection policy options are:
Fail- (Default) Reject only on HELO Fail. HELO/EHLO is known first in the
SMTP dialogue and there is no practical reason to waste resources on Mail
From checks if the HELO check will already cause the message to be rejected.
This should not cause interoperability problems when used for HELO.
SPF_Not_Pass- Reject if result not Pass, None, or Temperror
(alternatively put, reject if the SPF result is Fail, Softfail, Neutral,
PermError). Unlike Mail From checking, there are no standard -mail use cases
where a HELO check should not Pass if there is an SPF record for the HELO name
(transparent forwarding, for example, is not an issue). HELO/EHLO is known
first in the SMTP dialogue and there is no practical reason to waste resources
on Mail From checks if the HELO check will already cause the message to be
rejected. This is not consistent with the RFC 7208 requirement to treat none
and neutral the same, but should not cause interoperability problems when used
for HELO.
Softfail- Reject on HELO Softfail or Fail. HELO/EHLO is known first in the
SMTP dialogue and there is no practical reason to waste resources on Mail
From checks if the HELO check will already cause the message to be rejected.
This should not cause interoperability problems when used for HELO.
Null- Only reject HELO Fail for Null sender (SPF Classic). This is the
approach used by the pr-RFC 4408 reference implementation and many of the pr-
RFC specifications. Use of at least this option (SPF_Not_Pass or Fail) are
preferred) is highly recommended.
False- Never reject on HELO, append header only. This is useful for pos-SMTP
spam filters such as SpamAssassin.
No_Check- Never check HELO. This is only recommended if you are calling the
policy server twice (once for HELO checks and once for Mail From) with two
different configuration files. This approach is useful to get both the HELO
and Mail From headers prepended to a message.
Note: If No_Mail is set to True, it overrides rejections in any case where the
SPF record is not "v=spf1-all".
Default:
HELO_reject = Fail
HELO/EHLO PASS RESTRICTION
HELO Pass Restriction allows integration with other Postfix access
controls by provding a user supplied name of a postfix access
restriction to be applied to a message when the HELO checking result
is Pass. The indicated restriction must be an action as defined for a
Postfix SMTP server access table access(5) and explained in the
Postfix RESTRICTION CLASS README. The README.per_user_whitelisting file
provided with this distribution provides examples. Note: A helo pass
restriction will be the returned result even if the mail from result would
cause the message to be rejected.
Example:
HELO_pass_restriction = helo_passed_spf
Default:
None
Mail From CHECKING
Mail From rejection policy options are:
SPF_Not_Pass- Reject if result not Pass/None/Tempfail. This option
is not RFC 7208 compliant since the mail with an SPF Neutral result is treated
differently than mail with no SPF record and Softfail results are not supposed
to cause mail rejection. Global use of this option is not recommended. Use
pe-domain if needed (pe-domain usage described below).
Softfail- Reject on Mail From Softfail or Fail. Global use of this option is
not recommended. Use pe-domain if needed (pe-domain usage described below).
Fail (default)- Reject on Mail From Fail.
False- Never reject on Mail From, append header only. This is useful for
pos-SMTP spam filters such as SpamAssassin.
No_Check- Never check Mail From/Return Path. This is only recommended if you
are calling the policy server twice (once for HELO checks and once for Mail
From) with two different configuration files. This approach is useful to get
both the HELO and Mail From headers prepended to a message. It could also be
used to do HELO checking only (because HELO checking has a lower false positive
risk than Mail From checking), but this approach may not be fully RFC 7208
compliant since the Mail From identity is mandatory if HELO checking does not
reach a definitive result.
Note: If No_Mail is set to True, it overrides rejections in any case where the
SPF record is not "v=spf1-all".
Default:
Mail_From_reject = Fail
Mail From PASS RESTRICTION
Mail From Pass Restriction allows integration with other Postfix access
contlols by provding a user supplied name of a postfix access
restriction to be applied to a message when the Mail From checking result
is Pass. The indicated restriction must be an action as defined for a
Postfix SMTP server access table access(5) and explained in the
Postfix RESTRICTION CLASS README. The README.per_user_whitelisting file
provided with this distribution provides examples. Note: A mail from pass
restriction will be the returned result even if the helo result would cause
the message to be rejected.
Example:
Mail_From_pass_restriction = mfrom_passed_spf
Default:
None
Limit Rejections To Domains That Send No Mail
No_Mail- Only reject when SPF indicates the host/domain sends no mail. This
option will only cause mail to be rejected if the HELO/Mail From record is
"v=spf1 -all". This option is useful for rejecting mail in situations where
the tolerance for rejecting wanted mail is very low. It operates on both HELO
and Mail From identities if set.
Default:
No_Mail = False
Domain Specific Receiver Policy
Using this option, a list of domains can be defined for special processing
when messages do not Pass SPF. This can be useful for commonly spoofed
domains that are not yet publishing SPF records with -all. Specifically, if
mail from a domain in this list has a Neutral/Softfail result, it will be
rejected (as if it had a Fail result). If needed, it is better to do it on a
pe-domain basis rather than globally.
Example:
Reject_Not_Pass_Domains = aol.com,hotmail.com
Default:
None
Permanent Error Processing
Policy for rejecting due to SPF PermError options are:
True- Reject the message if the SPF result (for HELO or Mail From) is
PermError. This has a higher shor-term false positive risk, but does result
in senders getting feedback that they have a problem with their SPF record.
False- Treat PermError the same as no SPF record at all. This is consistet
with the pr-RFC usage (the pr-RFC name for this error was "Unknown").
This is a global option that affects both HELO and Mail From scopes when
checks for that scope are enabled. The only per scope setting that can
ove-ride this is Mail_From/HELO_reject = False/
Default:
PermError_reject = False
Temporary Error Processing
Policy for deferring messages due to SPF TempError options are:
True- Defer the message if the SPF result (for HELO or Mail From) is
TempError. This is the traditional usage and has proven useful in reducing
acceptance of unwanted messages. Sometimes spam senders do not retry.
Sometimes by the time a message is retried the sending IP has made it onto a
DNS RBL and can then be rejected. This is not the default because it is
possible for some DNS errors that are classified as "Temporary" per RFC 7208
to be permanent in the sense that they require operator intervention to
correct.
This is a global option that affects both HELO and Mail From scopes when
checks for that scope are enabled. The only per scope setting that can
ove-ride this is Mail_From/HELO_reject = False/
False- Treat TempError the same as no SPF record at all. This is the default
to minimize false positive risk.
Default:
TempError_Defer = False
Prospective SPF Check
Prospective SPF checking- Check to see if mail sent from the defined IP
address would pass. This is useful for outbound MTAs to avoid sending mail that
would Fail SPF checks when received. Disable HELO checking when using this
option. It's only potentially useful for Mail From checking. SPF Received
headers are not added when this option is used.
Prospective = 192.168.0.4
Default:
None
LOCAL SPF BYPASS LIST
Do not check SPF for localhost addresses- add to skip addresses to skip SPF
for internal networks if desired. Defaults are standard IPv4 and IPv6 localhost
addresses. This can also be used, to allow mail from local clients submitting
mail to an MTA also acting as a Mail Submission Agent (MSA) to be skipped. An
-header is prepended indicating SPF checks were skipped due to a local
address. This is a trace header only. Note the lack of spaces in the list.
Default:
skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1
SPF IP WHITELIST
A comma separated CIDR Notation list of IP addresses to skip SPF checks for.
Use this list to whitelist trusted relays (such as a secondary MX and
trusted forwarders). An -header is prepended indicating the IP was
whitelisted against SPF checks. This is a trace header only. Note the lack
of spaces in the list.
Example:
Whitelist = 192.168.0.0/31,192.168.1.0/30
Default:
None
SPF HELO WHITELIST
A comma separated HELO/EHLO host names to skip SPF checks for. Use this list
to whitelist trusted relays (such as a secondary MX and trusted forwarders) or
to work around a host with a buggy SPF record. An -header is prepended
indicating the host was whitelisted against SPF checks. This is a trace
header only. Note the lack of spaces in the list.
This option includes a check to ensure the connect IP address is referenced in
an A or AAAA record by the HELO/EHLO domain that is whitelisted. This is to
avoid inadvertent bypass of SPF checks if HELO/EHLO names are forged. If a
HELO/EHLO domain is unable to pass such a forward IP address match check, then
use an SPF IP Whitelist for the host's IP address instead.
Example:
HELO_Whitelist = relay.example.com,sender.example.org
Default:
None
SPF DOMAIN WHITELIST
Domain_Whitelist: List of domains whose sending IPs should be whitelisted from
SPF checks. Use this to list trusted forwarders by domain name. Client IP
addresses are tested against SPF records published by the listed domains. This
is useful for large forwarders with complex outbound infrastructures and SPF
records. This option is less scalable than the SPF IP Whitelist. An -header
is prepended indicating the IP was whitelisted against SPF checks. This is a
trace header only. This option does nothing if the domain does not have an SPF
record. In this case use the SPF IP Whitelist described above or
Domain_Whitelist_PTR (below). Note the lack of spaces in the list.
Example:
Domain_Whitelist = pobox.com,trustedforwarder.org
Default:
None
PTR DOMAIN WHITELIST
Domain_Whitelist_PTR: List of domains (and subdomains) whose sending IPs
should be whitelisted from SPF checks based on PTR match of the domain. Use
this to list trusted forwarders by domain name if they do not publish SPF
records. Client IP addresses PTR names are tested to see if they match the
listed domains. This is useful for large forwarders with complex outbound
infrastructures, but no SPF records and predictable host naming. Matching is
done using the same rules as the SPF PTR mechanism as described in RFC 7208.
List the parent domain and all subdomains will match. This option is less
scalable than the SPF IP Whitelist. An -header is prepended indicating the IP
was whitelisted against SPF checks. This is a trace header only. This option
does nothing if the host does not have a PTR record record. In this case use
the SPF IP Whitelist described above. Note the lack of spaces in the list.
Example:
Domain_Whitelist_PTR = yahoo.com,yahoogroups.com
Default:
None
SPF ENHANCED STATUS CODES
By default, Postfix will use the 4/5.7.1 enhanced status code for defer/reject
actions from the policy server (originally defined in RFC 1893, RFC 3463 is
the current reference). New email authentication (including SPF) specific
codes were defined in RFC 7372. The policy server now overrides the Postfix
enhanced status codes to use the RFC 7372 values. This can be disabled by
setting this option to "No" in the event of interoperability issues.
Example:
SPF_Enhanced_Status_Codes = No
Default:
Yes
RESULTS HEADER
The standard method for documenting SPF results in a message (for consumption
by downstream processes) is the Receive-SPF header defined in RFC 7208. This
is the default header to use. Results can also be documented in the
Authenticatio-Results header, which is also covered in RFC 7208. The default is
Receive-SPF (SPF), but inclusion of Authenticatio-Results (AR) headers as an
alternative to Receive-SPF can be specified.
If there is a requirement to prepend both Receive-SPF and Authenticatio-
Results headers, then it must be done by processing the message with more than
one instance of the policy server using different configuration files with
different Header_Type settings.
For no header at all, use Header_Type = None.
Examples:
Header_Type = SPF
or
Header_Type = AR
Default:
SPF
HIDE RCPT TO IN RESULTS HEADER
Both Receive-SPF and Authenticatio-Results (AR) header fields include the
receiving (RCPT TO) host, if available. In this application, it will always
be the host of the first recipient sent by the sending MTA, even if that
recipient is a BCC recipient. This is unavoidable as neither the Postfix
policy interface nor the milter interface provides any indication if the
recipient is BCC or not (this information is not available in until after
SMTP DATA in the body of the message). This presented a possible avenue for
a privacy breach, but in version 3.0 it was modified to be only the host name
and not the full address.
Hide_Receiver can set to Yes interest of maximizing privacy. If per user
processing is not in use, this setting will replace the actual host name with
<UNKNOWN> both in header fields and SMTP responses. The latter may make it
more difficult for senders to troubleshoot issues with their SPF deployments.
As an implementation detail, currently specifying any value other than No will
result in the recipient being hidden, but that may change in the future. If
per user processing is in use, this setting has no effect.
For the milter interface, checks are always done at the Mail From stage in the
SMTP protocol, so receiver data is never available. When using the milter,
this setting has no effect.
Examples:
Hide_Receiver = Yes
or
Hide_Receiver = No
Default:
No
Authentications Results Authentication Identifier
Every Authenticatio-Results header field has an authentication identifier
field ('Authserv_Id'). This is similar in syntax to a full-qualified domain
name. See policy-spf.conf.5 and RFC 7001 paragraph 2.4 for details.
Default is HOSTNAME. The results of socket.gethostname will be used unless an
alternate value is specified. An Authser-Id must be provided if
Header_Type 'AR' is used.
The authentication identifier field provides a unique identifier that refers
to the authenticating service within a given administrative domain. The
identifier MUST be unique to that domain. This identifier is intended to be
machin-readable and not necessarily meaningful to users.
Example:
Authserv_Id = mx.example.com
Default:
HOSTNAME
DNS Timeout Limit
RFC 7208 recommends an elapsed time limit for SPF checks of at least 20
seconds. Lookup_Time allows the maximum time (seconds) to be adjusted. 20
seconds is the default. This limit is applied separately to Mail From and
HELO/EHLO checks, so if both are performed, the lookups may take up to twice
Lookup_Time (plus any additional time required for whitelisting related DNS
lookups).
It is important that the combination of Lookup_Time(s) and applicable
Whitelist_Lookup_Time(s) be less than the smtpd_policy_service_timeout defined
for the service (default 100 seconds). Since HELO and Mail From time limits
are independent, smtpd_policy_service_timeout needs to be at least double the
time allowed for the SPF policy server per entity type.
Example:
Lookup_Time = 20
Default
20 (seconds)
Whitelist DNS Timeout Limit
Some of the available whitelisting mechanisms, i.e. Domain_Whitelist,
Domain_Whitelist_PTR, and HELO_Whitelist, require specific no-SPF DNS lookups
to determine if a connection should be white listed from SPF checks. The
maximum amount of time (in seconds) allocated for each of these checks, when
used (none are enabled by default), is controlled by the Whitelist_Lookup_Time
parameter. It defaults to 10 seconds and is applied independently to each
whitelisting method in use (e.g. if both a Domain_Whitelist_PTR and
HELO_Whitelist are defined, together they may take up to 20 seconds). This is
in addition to the time allowed for SPF Lookup_Time.
It is important that the combination of Lookup_Time(s) and applicable
Whitelist_Lookup_Time(s) be less than the smtpd_policy_service_timeout defined
for the service (default 100 seconds). Since HELO and Mail From time limits
are independent, smtpd_policy_service_timeout needs to be at least double the
time allowed for the SPF policy server per entity type.
Example:
Whitelist_Lookup_Time = 10
Default
10 (seconds)
DNS Void Lookup Limit
RFC 7208 adds a new processing limit called "void lookup limit" (See section
4.6.4). Void lookups are DNS queries within an SPF record for which DNS
queries return either a positive answer (RCODE 0) with an answer count of 0,
or a "Name Error" (RCODE 3) answer. This should not need to be changed.
Although new in an RFC in RFC 7208, this limit has been widely deployed in the
Mail::SPF perl library without issue. Default is 2, but it can be adjusted.
Example:
Void_Limit = 2
Default
2
Mock SPF Check To Add Milter Compatibility Header Field
In some versions of postfix, for bizarre Sendmail compatibility reasons, the
first header field added by a policy server is not visible to milters. To
make this easy to work around, set the Mock value to true and a fixed header
field will be inserted so the actual SPF check will be the second field and
visible to milters such as DMARC milter.
To use this feature requires additional postfix configuration to execute the
second, mock, instance of the policy server:
Add a second service to /etc/postfix/master.cf:
policy-sp-mock unix - n n - 0 spawn
user=nobody argv=/usr/bin/policy-spf '/etc/pypolicy-spf/mock
Configure the Postfix additional policy service in /etc/postfix/main.cf to
run before the regular service:
smtpd_recipient_restrictions =
...
reject_unauth_destination
check_policy_service unix:private/policy-sp-mock
check_policy_service unix:private/policy-spf
...
Create the specified configuration file in the location indicated with Mock
set to True.
Example:
Mock = True
Default
False
Log Queue ID
Include Postfix Queue ID in policy server log messages. This option only
applies to log level 0 or 1 messages that are unique to the policy server
interface when configured for pos-queue processing. Not used for milter or
common code logging. Included to assist with correlating logging with
specific Postfix message processing.
Example:
QueueID = True
Default
True
Reason Message/URL
If a message is rejected or deferred because of the SPF policy, a
reason is given for logging and debugging purposes. The String configured
supports the following format specifiers:
-
rejectdefer- either the string 'rejected' or 'deferred'
spf - SPF result code
url - Parameterized URL to http://www.openspf.net/ explaining SPF
The default url can be overridden by setting Reason_URL. It defaults to the
defunct openspf.org URL due to a lack of a standardized alternative. This is
intended for use with a web service which provides additional information to a
user. The following components are supported and required:
{0}- SPF result type (pass, fail, etc.)
{1}- Result rationale provided by the SPF library
{2}- Connect IP address
{3}- Recipient address, if available
All four components must be included in your custom URL. As shown in the
default and the example, '=' may be used in the URL. This is the only
configuration setting where it is allowed.
Example:
Reason_Message = Message {rejectdefer} due to: {spf}.
Reason_URL = http://www.openspf.net/Why?s={0};id={1};ip={2};r={3}
Default:
Reason_Message = Message {rejectdefer} due to: {spf}. Please see {url}
Reason_URL = http://www.openspf.net/Why?s={0};id={1};ip={2};r={3}
MILTER ONLY OPTIONS
- Socket (string)
-
Specifies the socket that should be established by the filter to receive
connections from
postfix(1)
in order to provide service.
socketspec
is in one of two forms:
local:path,
which creates a UNIX domain socket at the specified
path,
or
inet:port[@host]
or
inet6:port[@host]
which creates a TCP socket on the specified
port
and in the specified protocol family. If the
host
is not given as either a hostname or an IP address, the socket will be
listening on all interfaces. A literal IP address must be enclosed in
square brackets. This option is mandatory in the configuration file.
- PidFile (string)
-
Specifies the path to a file that should be created at process start
containing the process ID. If not specified, no such file will be created.
- UserID (string)
-
Attempts to become the specified userid before starting operations.
The value is of the form
userid[:group].
The process will be assigned all of the groups and primary group ID of
the named
userid
unless an alternate
group
is specified.
- UMask (integer)
-
Requests a specific permissions mask to be used for file creation.
This only really applies to creation of the socket when
Socket
specifies a UNIX domain socket, and to the
PidFile
(if any); temporary files are created by the
mkstemp(3)
function that enforces a specific file mode on creation regardless
of the process umask. See
umask(2)
for more information.
- InternalHosts (dataset)
-
Identifies a set internal hosts whose mail should be signed rather
than verified. The set should contain on each line a hostname, domain name
(e.g. ".example.com"), IP address, an IPv6 address (including an IPv4 mapped
address), or a CID-style IP specification (e.g. "192.168.1.0/24"). An entry
beginning with a bang ("!") character means "not", allowing exclusions of
specific hosts that are otherwise members of larger sets. Host and domain
names are matched first, then the IP or IPv6 address depending on the
connection type. More precise entries are preferred over less precise ones,
i.e. "192.168.1.1" will match before "!192.168.1.0/24". The text form of IPv6
addresses will be forced to lowercase when queried (RFC5952), so the contents
of this data set should also use lowercase. The IP address portion of an
entry may optionally contain square brackets; both forms (with and without)
will be checked. If not specified, the default of "127.0.0.1" is applied.
Naturally, providing a value here overrides the default, so if mail from
127.0.0.1 should be signed, the list provided here should include that
address explicitly.
- MacroList (dataset)
-
Defines a set of MT-provided
macros
that should be checked to see if the sender has been determined to be a
local user and therefore whether or not the message checked. If a
value
is specified matching a macro name in the data set, the value of the macro
must match a value specified (matching is cas-sensitive), otherwise the
macro must be defined but may contain any value. The set is empty by
default, meaning macros are not considered when making the verify decision.
The general format of the value is
value1[|value2[|...]];
if one or more value is defined then the macro must be set to one of the
listed values, otherwise the macro must be set but can contain any
value.
In order for the macro and its value to be available to the filter for
checking, the MTA must send it during the protocol exchange. This is either
accomplished via manual configuration of the MTA to send the desired macros
or, for MTA/filter combinations that support the feature, the filter can
request those macros that are of interest. The latter is a feature negotiated
at the time the filter receives a connection from the MTA and its availability
depends upon the version of milter used to compile the filter and the version
of the MTA making the connection.
SEE ALSO
man 1 policy-spf, man 5 policy-spf.peruser, pytho-spf,
<
http://www.openspf.net>, RFC 7208, RFC 7001, RFC 7372
AUTHORS
This version of
policy-spf was written by Copyright © 200-2016,
Scott Kitterman <
scott@kitterman.com>. It is derived from Tumgreyspf,
written by Sean Reifschneider, tummy.com, ltd <
jafo@tummy.com>. Portions
of the documentation were written by Meng Weng Wong <
mengwong@pobox.com>.
This ma-page was created by Scott Kitterman <scott@kitterman.com> and is
licensed under the same terms as the program.
Index
- NAME
-
- VERSION
-
- USAGE
-
- OTHER DOCUMENTATION
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- LOGGING
-
- TEST OPERATION
-
- HELO/EHLO CHECKING
-
- HELO/EHLO PASS RESTRICTION
-
- Mail From CHECKING
-
- Mail From PASS RESTRICTION
-
- Limit Rejections To Domains That Send No Mail
-
- Domain Specific Receiver Policy
-
- Permanent Error Processing
-
- Temporary Error Processing
-
- Prospective SPF Check
-
- LOCAL SPF BYPASS LIST
-
- SPF IP WHITELIST
-
- SPF HELO WHITELIST
-
- SPF DOMAIN WHITELIST
-
- PTR DOMAIN WHITELIST
-
- SPF ENHANCED STATUS CODES
-
- RESULTS HEADER
-
- HIDE RCPT TO IN RESULTS HEADER
-
- Authentications Results Authentication Identifier
-
- DNS Timeout Limit
-
- Whitelist DNS Timeout Limit
-
- DNS Void Lookup Limit
-
- Mock SPF Check To Add Milter Compatibility Header Field
-
- Log Queue ID
-
- Reason Message/URL
-
- MILTER ONLY OPTIONS
-
- SEE ALSO
-
- AUTHORS
-