disable: 0
    weight_invalid_helo_hostname: -100
    weight_non_fqdn_helo_hostname: -100
    weight_non_fqdn_recipient: -100
    weight_non_fqdn_sender: -100
    weight_unknown_helo_hostname: -50
    weight_unknown_recipient_domain: -50
    weight_unknown_sender_domain: -50
    #weight_unknown_client_hostname: -50
    weight_unknown_reverse_client_hostname: -50


Re-implementation of postfix's restriction directives but with scoring.

The following directives are re-implemented:

  • reject_invalid_helo_hostname -> weight_invalid_helo_hostname

    Syntax of helo hostname is invalid (eg "???" or "#@%@@" or whatever is not syntactically correct)

  • reject_non_fqdn_helo_hostname -> weight_non_fqdn_helo_hostname

    Syntax is correct, but not in FQDN form (eg localhost, but not localhost.tld)

  • reject_non_fqdn_recipient -> weight_non_fqdn_recipient

    Recipient address is not FDQN (eg: "user" without domain or anything or "user@localhost" but not "user@localhost.tld").

  • reject_non_fqdn_sender -> weight_non_fqdn_sender

    Same as above but for sender address.

  • reject_unknown_helo_hostname -> weight_unknown_helo_hostname

    If the syntax is correct and in FQDN form but NOT an existing domain (has no A or MX record)

  • reject_unknown_recipient_domain -> weight_unknown_recipient_domain

    Recipient is in correct FQDN but recipient domain does not have an A or MX record.

  • reject_unknown_sender_domain -> weight_unknown_sender_domain

    Same as above, but for sender.

  • reject_unknown_client_hostname -> weight_unknown_client_hostname

    This matches if: 1) the client IP address->name mapping fails, 2) the name->address mapping fails, or 3) the name->address mapping does not match the client IP address

    Stronger then weight_unknown_reverse_client_hostname which matches only 1)

  • reject_unknown_reverse_client_hostname -> weight_unknown_reverse_client_hostname

    See above.

The order the tests will be performed is in as they are listed above.


weight_non_fqdn_sender : Int

Default: 0

weight_unknown_sender_domain : Int

Default: 0

weight_non_fqdn_recipient : Int

Default: 0

weight_unknown_recipient_domain : Int

Default: 0

weight_invalid_helo_hostname : Int

Default: 0

weight_non_fqdn_helo_hostname : Int

Default: 0

weight_unknown_helo_hostname : Int

Default: 0

weight_unknown_client_hostname : Int

Default: 0

weight_unknown_reverse_client_hostname : Int

Default: 0

resolver : Net::DNS::Resolver

Will be created automatically.




Either build stats per country or score with negative or positve weight per country or do both


Returns bool wheter given domain has A or MX record


Resolutes either A or MX recrod to IP(s)


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.