A SPF implementation ( for decency based on Mail::SPF

Weight's incoming mail based on the sender policy framework.

The SPF suggests that your (sender) domain has an additional TXT record providing a list/range of server ip's which are allowed to send mails.

For an explanation of the spf result codes have a look here:


    versions: [ 1, 2 ]
    # the sender ip is allowed to send from this ip
    weight_pass: 20
    # no spf support from sender domain
    weight_none: 0
    # it is a fail, but sender domain admin has not the balls to use hard restrictions
    #   neutral is a bit more wishy-washy then softail is, but essentially both
    #   are saying: the particular sender is not really permitted, but it won't deny it
    #   the ..by_default neutral status i don't get..
    weight_neutral: -10
    weight_neutral_by_default: -10
    weight_softfail: -10
    # this admin has the bals. the sender ip is not permitted for this domain
    weight_fail: -50
    # some temporary dns problem. should not be weighted negativly, cause this
    #   could happen to any of us
    weight_temperror: 0
    # the permanent error says: we received something, but dont know what.
    weight_permerror: -10
    # this seems to catch error's which could not be further determined..
    weight_error: 0


Critics say the SPF could break existing structures, eg you cannot send mails from via your company's mails server. Advocates reply: that's the idea and it is good.


versions : ArrayRef[Int]

What SPF Versions to use (actually there is no SPF version2, read

weight_pass : Int

Weighting for passed (allowed) mails

weight_pass : Int

Weighting for passed (allowed) mails

weight_neutral : Int

Weighting for neutral (probably not allowed, but not rejected)

weight_neutral_by_default : Int

Kind of the same as neutral

weight_softfail : Int

Soft fail.. kind of same as neutral

weight_fail : Int

Really failed. SPF records says: not allowed.

weight_temperror : Int

Tempororay error.. maybe on your side ?

weight_permerror : Int

Permanent error.. should never happen. Something is really weird.

weight_error : Int

Some error.

spf_server : Mail::SPF::Server





Peforms the check for either helo or mfrom scope


Ulrich Kautz <>


Copyright (c) 2010 the "AUTHOR" as listed above


This library is free software and may be distributed under the same terms as perl itself.