.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Mail::Milter::Module::ConnectRegex 3pm" .TH Mail::Milter::Module::ConnectRegex 3pm "2023-01-22" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mail::Milter::Module::ConnectRegex \- milter to accept/reject connecting hosts matching regex(es) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Mail::Milter::Module::ConnectRegex; \& \& my $milter = new Mail::Milter::Module::ConnectRegex(\*(Aq^foo$\*(Aq); \& \& my $milter2 = &ConnectRegex(qw{^foo$ ^bar$}); # convenience \& \& $milter2\->set_message(\*(AqConnections from %H disallowed\*(Aq); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This milter module rejects any connecting host whose hostname or \s-1IP\s0 address matches user-supplied regular expressions. It can also function as a whitelisting Chain element; see \f(CW\*(C`accept_match()\*(C'\fR. .SH "METHODS" .IX Header "METHODS" .RS 4 new(REGEX[, ...]) .Sp 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 \s-1IP\s0 address literals will be enclosed in [square brackets]; so to test an \s-1IP\s0 address rather than a hostname, ensure those brackets exist: .Sp .Vb 1 \& ^\e[ADDRESS\e]$ .Ve .Sp accept_match(\s-1FLAG\s0) .Sp If \s-1FLAG\s0 is 0 (the default), a matching regex will cause the connection to be rejected. .Sp If \s-1FLAG\s0 is 1, a matching regex will cause this module to return \s-1SMFIS_ACCEPT\s0 instead. This allows a \f(CW\*(C`ConnectRegex\*(C'\fR to be used inside a \&\f(CW\*(C`Mail::Milter::Chain\*(C'\fR container (in \f(CWaccept_break(1)\fR mode), to function as a whitelist rather than a blacklist. .Sp This method returns a reference to the object itself, allowing this method call to be chained. .Sp set_message(\s-1MESSAGE\s0) .Sp Sets the message used when rejecting connections. This string may contain the substring \f(CW%H\fR, which will be replaced by the matching hostname or \s-1IP\s0 address. .Sp This method returns a reference to the object itself, allowing this method call to be chained. .RE .SH "BUGS" .IX Header "BUGS" In Sendmail 8.11 and 8.12, a milter rejection at \*(L"connect\*(R" stage does not allow the reply message to be set \*(-- it simply becomes \*(L"not accepting messages\*(R". However, this module still attempts to set the reply code and message in the hope that this will be fixed. .SH "AUTHOR" .IX Header "AUTHOR" Todd Vierling, .SH "SEE ALSO" .IX Header "SEE ALSO" Mail::Milter::Object .SH "POD ERRORS" .IX Header "POD ERRORS" Hey! \fBThe above document had some coding errors, which are explained below:\fR .IP "Around line 71:" 4 .IX Item "Around line 71:" You can't have =items (as at line 83) unless the first thing after the =over is an =item