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 );
$spf->mailserver( "mail_one", "mail1.example.com", "10.0.0.1" );
$spf->mailserver( "mail_two", "mail2.example.com", "10.0.0.2" );
$spf->domainservers( "example.com", "mail_one", "mail_two" );
$spf->domainincludes( "example.com", "example.net", "example.org" );
print $spf->output( output_type => 'bind9' );
DESCRIPTION
This module and it's associated sample code are intended to be used to generate DNS records (tinydns and BIND9 so far) for SPF, including any explicit wildcard recursion if necessary. The interface right now is /very/ questionable as this has not been proofread by anyone yet. Please be warned that this module may change considerable or not at all before first release.
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)
- output_type
-
Sets the type of output you want, currently only two possible values: 'bind9' and 'tinydns'. (Default: 'bind9' )
- ttl
-
Sets the ttl for all entires in the generated DNS heirarchy. (Default: 86400)
- deny
-
Sets the deny string for SPF deny records on dommains (but not on individual machines). Logical values would be 'deny' or 'softdeny'. (Default: 'deny')
mailserver
- Usage
-
$spf->mailserver( alias, hostname, address );
- Purpose
-
Defines a mail server alias, and creates the SPF records for HELO lookups.
- Returns
-
Nothing yet
- Arguments
-
- alias
-
string alias for this entry
- hostname
-
fully qualified domain name this mail server, and hostname name supplied at HELO phase.
- address
-
network address of this mail server (currently only an ipv4 address is supported)
domainservers
- Usage
-
$spf->domainservers( domain, alias, ... )
- Purpose
-
Create SPF records to indicate that servers identified by 'alias, ...' are allowed to send from 'domain'. All others are subject to the policy defined by softhard()
- Returns
-
Nothing Yet
- Arguments
domainincludes
- Usage
-
$spf->domainincludes( source_domain, domain, ... )
- Purpose
-
Creates 'SPFinclude=source_domain' TXT records in each of the supplied domains to cause a recursive lookup for allowed sending servers.
- Arguments
- Notes
-
If you are using this module to maintain the SPF records for both the source_domain and any of the other domains; you may wish to use domainservers() instead for these records. While domainincludes() does simplify the creation of multiple domains, it increases the number of DNS lookups that must be made. Put otherwise, in order to minimize traffic you should use this call as little as possible.
output
- Usage
-
print $spf->output();
or
my $output = $spf->output();
- 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 'output_type' 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 run only.
BUGS
Undoubtably some, tests are the next thing on the list to be written.
SUPPORT
Please contact the author with any comments or questions.
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