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