man Mail::Milter::Module::ConnectRegex () - milter to accept/reject connecting hosts matching regex(es)
NAME
Mail::Milter::Module::ConnectRegex - milter to accept/reject connecting hosts matching regex(es)
SYNOPSIS
use Mail::Milter::Module::ConnectRegex;
my $milter = new Mail::Milter::Module::ConnectRegex('^foo$');
my $milter2 = &ConnectRegex(qw{^foo$ ^bar$}); # convenience
$milter2->set_message('Connections from %H disallowed');
DESCRIPTION
This milter module rejects any connecting host whose hostname or IP address matches user-supplied regular expressions. It can also function as a whitelisting Chain element; see CWaccept_match().
METHODS
- new(REGEX[, ...])
-
Accepts one or more regular expressions, as strings or qr// precompiled
regexes. They are tested in sequence, and the first match terminates
checking. Note that all IP address literals will be enclosed in [square
brackets]; so to test an IP address rather than a hostname, ensure those
brackets exist:
^\[ADDRESS\]$
- accept_match(FLAG)
- If FLAG is 0 (the default), a matching regex will cause the connection to be rejected. If FLAG is 1, a matching regex will cause this module to return SMFIS_ACCEPT instead. This allows a CWConnectRegex to be used inside a CWMail::Milter::Chain container (in CWaccept_break(1) mode), to function as a whitelist rather than a blacklist. This method returns a reference to the object itself, allowing this method call to be chained.
- set_message(MESSAGE)
- Sets the message used when rejecting connections. This string may contain the substring CW%H, which will be replaced by the matching hostname or IP address. This method returns a reference to the object itself, allowing this method call to be chained.
BUGS
In Sendmail 8.11 and 8.12, a milter rejection at connect stage does not allow the reply message to be set it simply becomes not accepting messages. However, this module still attempts to set the reply code and message in the hope that this will be fixed.
AUTHOR
Todd Vierling, <tv@duh.org> <tv@pobox.com>
SEE ALSO
Mail::Milter::Object