Mail::Milter::Module::MailDomainDNSBL - milter to accept/reject mail whose sender domain matches a DNSBL
use Mail::Milter::Module::MailDomainDNSBL; my $milter = new Mail::Milter::Module::MailDomainDNSBL('foo.spamlist.dom'); my $milter2 = &MailDomainDNSBL('foo.spamlist.dom'); # convenience $milter2->set_message('Mail from %M disallowed');
This milter module rejects any mail from a sender's domain (in the MAIL FROM part of the SMTP transaction, not in the From: header) matching a given DNS Blocking List (DNSBL). It can also function as a whitelisting Chain element; see accept_match(). (This is known as a "RHSBL" check in some anti-spam lingo.)
accept_match()
The check used by this module is a simple "A" record lookup, via the standard "gethostbyname" lookup mechanism. This method does not require the use of Net::DNS and is thus typically very fast.
new(DNSBL)
new(DNSBL, MATCHRECORD[, ...])
new(DNSBL, SUBREF)
Creates a MailDomainDNSBL object. DNSBL is the root host hierarchy to use for lookups. Three methods of matching can be used:
If no additional arguments are provided, the match succeeds if there is any address entry present for the DNSBL lookup; the values are not examined.
If one or more MATCHRECORD values are supplied, they are string representations of IPv4 addresses. If any of these match record values is the same as any address record returned by the DNSBL lookup, the match succeeds.
If a SUBREF (reference to a subroutine; may be an anonymous inline sub{}) is supplied, it is called for each of the address records returned by the DNSBL lookup. The subroutine should return 0 or undef to indicate a failed match, and nonzero to indicate a successful match. The subroutine receives two arguments: a binary-encoded four byte scalar that should be transformed as needed with inet_ntoa() or unpack, and the domain name being checked by the DNSBL.
sub{}
inet_ntoa()
unpack
accept_match(FLAG)
If FLAG is 0 (the default), a matching DNSBL will cause the mail to be rejected.
If FLAG is 1, a matching DNSBL will cause this module to return SMFIS_ACCEPT instead. This allows a MailDomainDNSBL to be used inside a Mail::Milter::Chain container (in accept_break(1) mode), to function as a whitelist rather than a blacklist.
MailDomainDNSBL
Mail::Milter::Chain
accept_break(1)
This method returns a reference to the object itself, allowing this method call to be chained.
ignore_tempfail(FLAG)
If FLAG is 0 (the default), a DNSBL lookup which fails the underlying DNS query will cause the milter to return a temporary failure result (SMFIS_TEMPFAIL).
If FLAG is 1, a temporary DNS failure will be treated as if the lookup resulted in an empty record set (SMFIS_CONTINUE).
check_superdomains(NUM)
If no match is returned by checking the domain name verbatim, recurse one level upward at a time and attempt the check again. If NUM is positive, the recursion will stop after NUM recursions; if negative, the recursion will stop when abs(NUM) domain levels have been reached. The default is 0, meaning that no recursion will be done.
For example, when checking the domain name FOO.BAR.BAZ.COM, NUM=1 will also check BAR.BAZ.COM; NUM=-1 will check BAR.BAZ.COM, BAZ.COM, and COM.
set_message(MESSAGE)
Sets the message used when rejecting messages. This string may contain the substring %M, which will be replaced by the matching e-mail address, or %L, which will be replaced by the name of the matching DNSBL.
%M
%L
Todd Vierling, <tv@duh.org> <tv@pobox.com>
Mail::Milter::Object
1 POD Error
The following errors were encountered while parsing the POD:
You can't have =items (as at line 90) unless the first thing after the =over is an =item
To install Mail::Milter, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mail::Milter
CPAN shell
perl -MCPAN -e shell install Mail::Milter
For more information on module installation, please visit the detailed CPAN module installation guide.