The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

spfquery - checks if an IP address is an SPF-authorized SMTP sender for a domain

VERSION

2.3

SYNOPSIS

spfquery --mail-from|-m|--sender|-s email-address|domain --helo|-h hostname --ip|-i ip-address [OPTIONS]

spfquery --helo|-h hostname --ip|-i ip-address [OPTIONS]

spfquery --file|-f filename|- [OPTIONS]

spfquery --version|-V

spfquery --help

DESCRIPTION

spfquery performs Sender Policy Framework (SPF) authorization checks based on the command-line arguments or data given in a file or on standard input. For information on SPF see http://www.openspf.org.

The --mail-from form checks if the given ip-address is an authorized SMTP sender for the given envelope sender domain or email-address and HELO hostname (so-called MAIL FROM check). If a domain is given, postmaster will be substituted for the localpart.

The --helo form checks if the given ip-address is an authorized SMTP sender for the given HELO hostname (so-called HELO check).

The --file form reads "ip-address sender-address helo-hostname" tuples from the file with the specified filename, or from standard input if filename is -.

The --version form prints version information of spfquery. The --help form prints usage information for spfquery.

OPTIONS

The --mail-from, --helo, and --file forms optionally take any of the following additional OPTIONS:

--debug

Print out debug information.

--default-explanation string

Use the specified string as the default explanation if the SPF record does not specify an explanation string itself.

--guess spf-terms

Use spf-terms as a default record if no SPF record is found. This is a non-standard feature.

--keep-comments
--no-keep-comments

Do (not) print any comments found when reading from a file or from standard input.

--local spf-terms

Process spf-terms as local policy before resorting to a default result (the implicit or explicit all mechanism at the end of the domain's SPF record). For example, this could be used for white-listing one's secondary MXes: mx:mydomain.example.org.

--max-lookup-count n

Perform a maximum of n SPF record lookups. Defaults to 10.

--name hostname

Use hostname as the hostname of the local system instead of auto-detecting it.

--override domain=spf-record
--fallback domain=spf-record

Set overrides and fallbacks. Each option can be specified multiple times. For example: --override example.org='v=spf1 -all' --override '*.example.net'='v=spf1 a mx -all' --fallback example.com='v=spf1 -all'. This is a non-standard feature.

--rcpt-to email-addresses

Automatically allow the secondary MXes of the comma-separated list of email-addresses.

--sanitize
--no-sanitize

Do (not) sanitize the output by condensing consecutive white-space into a single space and replacing non-printable characters with question marks. Enabled by default.

--trusted
--no-trusted

Do (not) perform trusted-forwarder.org accreditation checking. Disabled by default. This is a non-standard feature.

RESULT CODES

pass

The specified IP address is an authorized mailer for the sender domain/address.

fail

The specified IP address is not an authorized mailer for the sender domain/address.

softfail

The specified IP address is not an authorized mailer for the sender domain/address, however the domain is still in the process of transitioning to SPF.

neutral

The sender domain makes no assertion about the status of the IP address.

unknown

The sender domain has a syntax error in its SPF record.

error

A temporary DNS error occurred while resolving the sender policy. Try again later.

none

There is no SPF record for the sender domain.

EXIT CODES

0

pass

1

fail

2

softfail

3

neutral

4

unknown

5

error

6

none

EXAMPLES

    spfquery -i 11.22.33.44 -m user@example.com -h spammer.example.net
    spfquery -f test_data
    echo "127.0.0.1 user@example.com helohost.example.com" | spfquery -f -

SEE ALSO

Mail::SPF::Query, spfd

AUTHORS

This version of spfquery was written by Wayne Schlitt <wayne@midwestcs.com>.

This man-page was written by Julian Mehnle <julian@mehnle.net>, based on a man-page written by S. Zachariah Sprackett for an older version of spfquery.