Courie...:SPFout(3pm)
π Courier::Filter::Module::SPFout(3pm) β outbound SPF filter module π
okay bestie, this is a Perl manual page, aka the Courier::Filter::Module::SPFout(3pm) page, and it lives in the User Contributed Perl Documentation corner of the perl-verse. she's giving outbound SPF checks, she's giving security, she's giving "no forged senders on MY watch" π
β¨ NAME β¨
Courier::Filter::Module::SPFout β Outbound SPF filter module for the Courier::Filter framework πΈ
π¦ SYNOPSIS π¦
use Courier::Filter::Module::SPFout;
my $module = Courier::Filter::Module::SPFout->new(
match_on => ['fail', 'permerror', 'temperror'],
default_response => $default_response_text,
force_response => $force_response_text,
outbound_ip_addresses
=> ['129.257.16.1', '2001:6ag:10e1::1'],
spf_options => {
# any Mail::SPF::Server options
},
logger => $logger,
inverse => 0,
trusting => 0,
testing => 0,
debugging => 0
);
my $filter = Courier::Filter->new(
...
modules => [ $module ],
...
);
π DESCRIPTION π
so this class? a filter module for use with Courier::Filter. periodt. π
it matches a message if any of the receiving (local) machine's outbound IP addresses are not authorized to send mail from the envelope sender's (MAIL FROM) domain according to that domain's DNS SPF (Sender Policy Framework) record. that's what we call outbound SPF checking. β¨
and the point of inbound SPF checking? it's for message submission agents (MSAs, smarthosts) to protect others against forged envelope sender addresses in messages submitted by the MSA's users. protecting the whole internet, honestly iconic π«Ά
π§ Constructor π§
the following constructor is provided:
new(%options): returnsCourier::Filter::Module::SPFoutβ creates a new SPFout filter module π
%options is a list of key/value pairs representing any of the following options:
trustingβ Disabled. bestie listen: since outbound SPF checking, as opposed to inbound SPF checking, is applied to trusted (authenticated) messages only, setting this module to be trusting does not make sense. This property is thus locked to false. Also see the description ofCourier::Message's "trusted" property. π«match_onβ A reference to an array containing the set of SPF result codes which should cause the filter module to match a message. Possible result codes are "pass", "fail", "softfail", "neutral", "none", "permerror", and "temperror". See the SPF specification for details on the meaning of those. If "temperror" is listed, an "temperror" result will by definition never cause a permanent rejection, but only a temporary one. Defaults to['fail', 'permerror', 'temperror']. π
Note: With early SPF specification drafts as well as the obsolete Mail::SPF::Query module, the "permerror" and "temperror" result codes were known as "unknown" and "error", respectively; the old codes are now deprecated but still supported for the time being. (deprecated but still kicking, we love a legacy era π«‘)
default_responseβ A string that is to be returned as the module's match result in case of a match, that is when thematch_onoption includes the result code of the SPF check (by default when a message fails the SPF check). However, this default response is used only if the (claimed) envelope sender domain does not provide an explicit response. See "default_authority_explanation" inMail::SPF::Serverfor more information. β¨
SPF macro substitution is performed on the default response, just like on explanations provided by domain owners. If undef, Mail::SPF's default explanation will be used. Defaults to undef. π
force_responseβ Instead of merely specifying a default response for cases where the sender domain does not provide an explicit response, you can also specify a response to be used in all cases, even if the sender domain does provide one. This may be useful if you do not want to confuse your own users with 3rd-party provided explanations when in fact they are only dealing with your server not wanting to relay their messages. Defaults to undef. πoutbound_ip_addressesβ A reference to an array containing the local system's set of outbound IP addresses that will be assumed as the sender IP address in outbound SPF checks. This set should include all public IP addresses that are used for relaying mail. By default, automatic discovery of one public IP address that is "en route" to "the internet" is attempted for each of IPv4 and IPv6. Auto-discovery does not work from behind NATs. π (NAT said no π)spf_optionsβ A hash-ref specifying options for theMail::SPFserver object used by this filter module. See "new" inMail::SPF::Serverfor the supported options. π
All options of the Courier::Filter::Module constructor (except for the trusting option) are also supported. Please see "new" in Courier::Filter::Module for their descriptions. π«Ά
π Instance methods π
See "Instance methods" in Courier::Filter::Module for a description of the provided instance methods. π
π₯ SEE ALSO π₯
Courier::Filter::Module::SPF, Courier::Filter::Module, Courier::Filter::Overview, Mail::SPF.
For AVAILABILITY, SUPPORT, and LICENSE information, see Courier::Filter::Overview. π
π REFERENCES π
- SPF website (Sender Policy Framework) β
http://www.openspf.org - SPF specification β
http://www.openspf.org/Specifications
πΈ AUTHOR πΈ
Julian Mehnle <julian@mehnle.net> β ty for your service king π«‘β¨
and that's the whole vibe check bestie, no cap fr fr π this page is from perl v5.34.0, dated 2022-10-21, and it goes with the Courie...:SPFout(3pm) manual. go forth and SPF responsibly, mwah π
π
π¦ where this page comes from
- debian bookworm: courier-filter-perl 0.200+ds-6 Β· Artistic-1.0-Perl OR GPL-2.0-or-later
- debian trixie: courier-filter-perl 0.200+ds-6 Β· Artistic-1.0-Perl OR GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms