Mail-SpamAssassin
view release on metacpan or search on metacpan
lib/Mail/SpamAssassin/Plugin/SPF.pm view on Meta::CPAN
$self->register_eval_rule ("check_for_spf_whitelist_from", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); # removed in 4.1
$self->register_eval_rule ("check_for_def_spf_welcomelist_from", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
$self->register_eval_rule ("check_for_def_spf_whitelist_from", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); # removed in 4.1
$self->register_eval_rule ("check_spf_skipped_noenvfrom", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
$self->set_config($mailsaobject->{conf});
return $self;
}
###########################################################################
sub set_config {
my($self, $conf) = @_;
my @cmds;
=head1 USER SETTINGS
=over 4
=item welcomelist_from_spf user@example.com
Previously whitelist_from_spf which will work interchangeably until 4.1.
Works similarly to welcomelist_from, except that in addition to matching a
sender address, a check against the domain's SPF record must pass. The
first parameter is an address to welcomelist, and the second is a string to
match the relay's rDNS.
Just like welcomelist_from, multiple addresses per line, separated by
spaces, are OK. Multiple C<welcomelist_from_spf> lines are also OK.
The headers checked for welcomelist_from_spf addresses are the same headers
used for SPF checks (Envelope-From, Return-Path, X-Envelope-From, etc).
Since this welcomelist requires an SPF check to be made, network tests must be
enabled. It is also required that your trust path be correctly configured.
See the section on C<trusted_networks> for more info on trust paths.
e.g.
welcomelist_from_spf joe@example.com fred@example.com
welcomelist_from_spf *@example.com
=item def_welcomelist_from_spf user@example.com
Previously def_whitelist_from_spf which will work interchangeably until 4.1.
Same as C<welcomelist_from_spf>, but used for the default welcomelist entries
in the SpamAssassin distribution. The welcomelist score is lower, because
these are often targets for spammer spoofing.
=item unwelcomelist_from_spf user@example.com
Previously unwhitelist_from_spf which will work interchangeably until 4.1.
Used to remove a C<welcomelist_from_spf> or C<def_welcomelist_from_spf> entry.
The specified email address has to match exactly the address previously used.
Useful for removing undesired default entries from a distributed configuration
by a local or site-specific configuration or by C<user_prefs>.
=cut
push (@cmds, {
setting => 'welcomelist_from_spf',
aliases => ['whitelist_from_spf'], # removed in 4.1
type => $Mail::SpamAssassin::Conf::CONF_TYPE_ADDRLIST
});
push (@cmds, {
setting => 'def_welcomelist_from_spf',
aliases => ['def_whitelist_from_spf'], # removed in 4.1
type => $Mail::SpamAssassin::Conf::CONF_TYPE_ADDRLIST
});
push (@cmds, {
setting => 'unwelcomelist_from_spf',
aliases => ['unwhitelist_from_spf'], # removed in 4.1
type => $Mail::SpamAssassin::Conf::CONF_TYPE_ADDRLIST,
code => sub {
my ($self, $key, $value, $line) = @_;
unless (defined $value && $value !~ /^$/) {
return $Mail::SpamAssassin::Conf::MISSING_REQUIRED_VALUE;
}
unless ($value =~ /^(?:\S+(?:\s+\S+)*)$/) {
return $Mail::SpamAssassin::Conf::INVALID_VALUE;
}
$self->{parser}->remove_from_addrlist('welcomelist_from_spf',
split (/\s+/, $value));
$self->{parser}->remove_from_addrlist('def_welcomelist_from_spf',
split (/\s+/, $value));
}
});
=back
=head1 ADMINISTRATOR SETTINGS
=over 4
=item spf_timeout n (default: 5)
How many seconds to wait for an SPF query to complete, before scanning
continues without the SPF result. A numeric value is optionally suffixed
by a time unit (s, m, h, d, w, indicating seconds (default), minutes, hours,
days, weeks).
=cut
push (@cmds, {
setting => 'spf_timeout',
is_admin => 1,
default => 5,
type => $Mail::SpamAssassin::Conf::CONF_TYPE_DURATION
});
=item ignore_received_spf_header (0|1) (default: 0)
By default, to avoid unnecessary DNS lookups, the plugin will try to use the
SPF results found in any C<Received-SPF> headers it finds in the message that
( run in 0.528 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )