NAME
spfd - simple forking daemon to provide SPF query services
VERSION
2006-02-07
SYNOPSIS
spfd --port port [--set-user uid|username] [--set-group gid|groupname]
spfd --socket filename [--socket-user uid|username] [--socket-group gid|groupname] [--socket-perms octal-perms] [--set-user uid|username] [--set-group gid|groupname]
spfd --help
DESCRIPTION
spfd is a simple forking Sender Policy Framework (SPF) query proxy server. spfd receives and answers SPF query requests on a TCP/IP or UNIX domain socket.
The --port form listens on a TCP/IP socket on the specified port. The default port is 5970.
The --socket form listens on a UNIX domain socket that is created with the specified filename. The socket can be assigned specific user and group ownership with the --socket-user and --socket-group options, and specific filesystem permissions with the --socket-perms option.
Generally, spfd can be instructed with the --set-user and --set-group options to drop root privileges and change to another user and group before it starts listening for requests.
The --help form prints usage information for spfd.
REQUEST
A request consists of a series of lines delimited by \x0A (LF) characters (or whatever your system considers a newline). Each line must be of the form key=value, where the following keys are required:
- ip
-
The sender IP address.
- sender
-
The envelope sender address (from the SMTP
MAIL FROM
command). - helo
-
The envelope sender hostname (from the SMTP
HELO
command).
RESPONSE
spfd responds to query requests with similar series of lines of the form key=value. The most important response keys are:
- result
-
The result of the SPF query:
- 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.
- smtp_comment
-
The text that should be included in the receiver's SMTP response.
- header_comment
-
The text that should be included as a comment in the message's
Received-SPF:
header. - spf_record
-
The SPF record of the envelope sender domain.
For the description of other response keys see Mail::SPF::Query.
For more information on SPF see http://www.openspf.org.
EXAMPLE
A running spfd could be tested using the netcat
utility like this:
$ echo -e "ip=11.22.33.44\nsender=user@pobox.com\nhelo=spammer.example.net\n" | nc localhost 5970
result=neutral
smtp_comment=Please see http://spf.pobox.com/why.html?sender=user%40pobox.com&ip=11.22.33.44&receiver=localhost
header_comment=localhost: 11.22.33.44 is neither permitted nor denied by domain of user@pobox.com
guess=neutral
smtp_guess=
header_guess=
guess_tf=neutral
smtp_tf=
header_tf=
spf_record=v=spf1 ?all
SEE ALSO
Mail::SPF::Query, http://www.openspf.org
AUTHORS
This version of spfd was written by Meng Weng Wong <mengwong+spf@pobox.com>. Improved argument parsing was added by Julian Mehnle <julian@mehnle.net>.
This man-page was written by Julian Mehnle <julian@mehnle.net>.