NAME
Mail::SPF::Publish - Assist in the creation of DNS records for the SPF standard.
SYNOPSIS
use Mail::SPF::Publish
my $spf = Mail::SPF::Publish->new( ttl => 86400 );
# Basic form
$spf->mailserver( "mail_one", "mail1.example.com", [ "10.0.0.1" ] );
# Multi-homed mail server
$spf->mailserver( "mail_two", "mail2.example.com", [ "10.0.0.2", "192.168.0.1" ] );
# Multi-homed mail server with CIDR style notation
$spf->mailserver( "mail_three", "mail3.example.com", [ "10.0.0.8/30", "192.168.8.0/29" ] );
$spf->domainservers( "example.com", [ "mail_one", "mail_two", "mail_three" ], default => 'softdeny');
$spf->domainincludes( "myvanity.com", [ "myisp.com", "myschool.edu" ], ttl => 86400 );
print $spf->output( format => 'bind4' );
DESCRIPTION
This module and its associated sample code are intended to be used to generate DNS zone files for SPF under tinydns and bind4-9, including any explicit wildcard recursion if necessary. Most people will want to use the supplied scripts for automatic generation of a zone, 'autospf' and 'spf2zone'.
USAGE
new
- Usage
-
my $spf = Mail::SPF::Publish->new();
- Purpose
-
Creates a new SPF publishing module
- Returns
-
The object it just created.
- Arguments
-
- explicit_wildcards
-
Sets whether explicit wildcards are to be generated (Default: 1)
- format
-
Sets the type of output you want, currently only two possible values: 'bind4' and 'tinydns'. (Default: 'bind4' )
- ttl
-
Sets the ttl for all entires in the generated DNS heirarchy. (Default: 86400)
- default
-
Sets the default response for domains (but not on individual machines). You may set 'deny', 'softdeny', or 'accept'. (Default: 'deny') Please don't set 'accept'.
mailserver
- Usage
-
$spf->mailserver( alias, hostname, addresslist, options );
- Purpose
-
Defines a mail server alias, and creates the SPF records for HELO lookups.
- Arguments
-
- alias
-
string alias for this entry
- hostname
-
fully qualified domain name this mail server, and hostname name supplied at HELO phase.
- addresslist
-
arrayref of network address of this mail server (currently only ipv4 addresses are supported, CIDR notation is optional.)
domainservers
- Usage
-
$spf->domainservers( domain, aliaslist, options )
- Purpose
-
Create SPF records to indicate that servers identified by aliaslist are allowed to send from domain.
- Arguments
-
- domain
-
Domain name to which you are adding mail servers to for SPF record generation.
- aliaslist
-
Arrayref of server aliases, defined with the mailserver() function.
- options
-
Option list to override default options, and those specified in new().
domainincludes
- Usage
-
$spf->domainincludes( my_domain, other_domain_list, options )
- Purpose
-
Creates 'SPFinclude=other_domain' TXT records for my_domain; this allows my_domain to designate mailservers belonging to other_domain.
- Arguments
-
- my_domain
-
Domain under our control.
- other_domain_list
-
Arrayref of domains which SPFinclude records will point to. These domains are not under our control, but we want to designate their servers.
- Notes
-
If the other_domains are under your control, use domainservers() to create full-fledged entries for them directly; this improves query time and saves traffic.
output
- Usage
-
print $spf->output( options );
or
my $output = $spf->output( options );
- Purpose
-
Compiles domain information collected by all the previous method calls, and produces an output suitable for use in the specified (or default, if you didn't specify) name server.
- Returns
-
A multi-line string containing the output.
- Arguments
-
This function will take an explicit_wildcards and format option as documented under the new() function. The supplied values will be used to override the default provided in the new() function for the current call only.
BUGS
Entering anything besides IPv4 addresses into address lists may throw an error, or may just mangle the output.
Undoubtably others.
SUPPORT
Send a message to subscribe-spf-discuss@v2.listbox.com.
See also http://spf.pobox.com/
AUTHOR
Jonathan Steinert hachi@cpan.org
COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
SEE ALSO
http://spf.pobox.com/ Mail::SPF::Query