Mail::SPF::Mech::PTR - SPF record C<ptr> mechanism class


Mail-SPF documentation Contained in the Mail-SPF distribution.

Index


Code Index:

NAME

Top

Mail::SPF::Mech::PTR - SPF record ptr mechanism class

DESCRIPTION

Top

An object of class Mail::SPF::Mech::PTR represents an SPF record mechanism of type ptr.

Constructors

The following constructors are provided:

new(%options): returns Mail::SPF::Mech::PTR

Creates a new SPF record ptr mechanism object.

%options is a list of key/value pairs representing any of the following options:

qualifier
domain_spec

See new in Mail::SPF::Mech.

new_from_string($text, %options): returns Mail::SPF::Mech::PTR; throws Mail::SPF::ENothingToParse, Mail::SPF::EInvalidMech

Creates a new SPF record ptr mechanism object by parsing the string and any options given.

Class methods

The following class methods are provided:

default_qualifier
qualifier_pattern

See Class methods in Mail::SPF::Mech.

name: returns string

Returns 'ptr'.

name_pattern: returns Regexp

Returns a regular expression that matches a mechanism name of 'ptr'.

Instance methods

The following instance methods are provided:

text
qualifier
params
stringify

See Instance methods in Mail::SPF::Mech.

domain_spec: returns Mail::SPF::MacroString

Returns the domain-spec parameter of the mechanism.

match($server, $request): returns boolean

Checks whether the mechanism's target domain name, or a sub-domain thereof, is a "valid" domain name for the given request's IP address (see ip_address in Mail::SPF::Request), and returns true if it does, or false otherwise. See valid_domain_for_ip_address in Mail::SPF::Util for how domains are validated. See RFC 4408, 5.5, for the description of an equivalent algorithm.

SEE ALSO

Top

Mail::SPF, Mail::SPF::Record, Mail::SPF::Term, Mail::SPF::Mech

http://www.ietf.org/rfc/rfc4408.txt

For availability, support, and license information, see the README file included with Mail::SPF.

AUTHORS

Top

Julian Mehnle <julian@mehnle.net>, Shevek <cpan@anarres.org>


Mail-SPF documentation Contained in the Mail-SPF distribution.
#
# Mail::SPF::Mech::PTR
# SPF record "ptr" mechanism class.
#
# (C) 2005-2008 Julian Mehnle <julian@mehnle.net>
#     2005      Shevek <cpan@anarres.org>
# $Id: PTR.pm 50 2008-08-17 21:28:15Z Julian Mehnle $
#
##############################################################################

package Mail::SPF::Mech::PTR;

use warnings;
use strict;

use base 'Mail::SPF::SenderIPAddrMech';

use Mail::SPF::Util;

use constant TRUE   => (0 == 0);
use constant FALSE  => not TRUE;

use constant name           => 'ptr';
use constant name_pattern   => qr/${\name}/i;

sub parse_params {
    my ($self) = @_;
    $self->parse_domain_spec();
    return;
}

sub params {
    my ($self) = @_;
    return defined($self->{domain_spec}) ? ':' . $self->{domain_spec} : undef;
}

# Make read-only accessor:
__PACKAGE__->make_accessor('domain_spec', TRUE);

sub match {
    my ($self, $server, $request) = @_;
    $server->count_dns_interactive_term($request);
    return
        Mail::SPF::Util->valid_domain_for_ip_address(
            $server, $request, $request->ip_address, $self->domain($server, $request))
        ? TRUE : FALSE;
}

TRUE;