.\" 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::AccessDB 3pm" .TH Mail::Milter::Module::AccessDB 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::AccessDB \- emulator for Sendmail "access_db" in a milter .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Mail::Milter::Module::AccessDB; \& \& my $milter = new Mail::Milter::Module::AccessDB(\e%hashref); \& \& my $milter2 = &AccessDB(\e%hashref); # convenience .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Sendmail's \*(L"access_db\*(R" is a powerful access restriction database tool, but it is limited only to data explicitly available through the \s-1SMTP\s0 session. This milter module allows rewriting to take place (such as through Mail::Milter::Wrapper::DecodeSRS) before applying the access rules. .PP Not all access_db functionality is duplicated here; some is unimplemented, while some is Sendmail-internal only. See \s-1DATABASE FORMAT,\s0 below, for a list of supported tags and result codes in this module. .PP \&\s-1NOTE:\s0 As of this version, this module might not be thread-safe. A future version of this module will share the hashref between threads and lock it properly. .PP \&\s-1ESPECIALLY NOTE:\s0 This module is highly experimental, does not support all accessdb data types yet, and is not guaranteed to work at all. Feel free to try it out and to send comments to the author, but it is not yet recommended to use this module in a production setup. .SH "DATABASE FORMAT" .IX Header "DATABASE FORMAT" [\s-1XXX: TBD\s0] .SH "METHODS" .IX Header "METHODS" .RS 4 new(\s-1HASHREF\s0) .Sp Create this milter using a provided hash reference. This may be a tied hash, such as to an already opened Sendmail-style database. .Sp Currently there is no support for automatically reopening databases, hence this one-shot constructor. (Sendmail does not support automatic reopening either, for that matter.) .Sp ignore_tempfail(\s-1FLAG\s0) .Sp If \s-1FLAG\s0 is 0 (the default), a \s-1DNS\s0 lookup which fails the underlying \s-1DNS\s0 query will cause the milter to return a temporary failure result (\s-1SMFIS_TEMPFAIL\s0). .Sp If \s-1FLAG\s0 is 1, a temporary \s-1DNS\s0 failure will be treated as if the lookup resulted in an empty record set (\s-1SMFIS_CONTINUE\s0). .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 messages. This string may contain the substring \f(CW%0\fR, which will be replaced by the matching lookup key (not including type tag). .Sp This method returns a reference to the object itself, allowing this method call to be chained. .RE .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 90:" 4 .IX Item "Around line 90:" You can't have =items (as at line 102) unless the first thing after the =over is an =item