mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-08-06 19:05:54 +00:00
140 lines
3.8 KiB
Raku
Executable File
140 lines
3.8 KiB
Raku
Executable File
#!/usr/bin/perl -T
|
|
|
|
use lib '.'; use lib 't';
|
|
use SATest; sa_t_init("freemail");
|
|
|
|
use Test::More;
|
|
|
|
plan tests => 23;
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# Global
|
|
tstprefs ("
|
|
freemail_domains gmail.com
|
|
");
|
|
|
|
## Standard + welcomelist should not hit
|
|
|
|
tstlocalrules (q{
|
|
freemail_import_welcomelist_auth 0
|
|
welcomelist_auth test@gmail.com
|
|
header FREEMAIL_FROM eval:check_freemail_from()
|
|
score FREEMAIL_FROM 3.3
|
|
header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply')
|
|
score FREEMAIL_REPLYXX 3.3
|
|
header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto')
|
|
score FREEMAIL_REPLYTO 3.3
|
|
header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply')
|
|
score FREEMAIL_REPLYXX 3.3
|
|
header FREEMAIL_ENVFROM_END_DIGIT eval:check_freemail_header('EnvelopeFrom', '\d@')
|
|
score FREEMAIL_ENVFROM_END_DIGIT 3.3
|
|
header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@')
|
|
score FREEMAIL_REPLYTO_END_DIGIT 3.3
|
|
header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To')
|
|
score FREEMAIL_HDR_REPLYTO 3.3
|
|
});
|
|
|
|
%patterns = (
|
|
q{ 3.3 FREEMAIL_FROM }, '',
|
|
);
|
|
%anti_patterns = (
|
|
# No Reply-To or body
|
|
q{ FREEMAIL_REPLYTO }, '',
|
|
q{ FREEMAIL_REPLYXX }, '',
|
|
q{ FREEMAIL_ENVFROM_END_DIGIT }, '',
|
|
q{ FREEMAIL_REPLYTO_END_DIGIT }, '',
|
|
q{ FREEMAIL_HDR_REPLYTO }, '',
|
|
);
|
|
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
clear_pattern_counters();
|
|
|
|
## Now test with freemail_import_welcomelist_auth, should not hit
|
|
|
|
%patterns = ();
|
|
%anti_patterns = (
|
|
q{ FREEMAIL_FROM }, '',
|
|
);
|
|
|
|
tstlocalrules (q{
|
|
freemail_import_welcomelist_auth 1
|
|
welcomelist_auth test@gmail.com
|
|
header FREEMAIL_FROM eval:check_freemail_from()
|
|
score FREEMAIL_FROM 3.3
|
|
});
|
|
|
|
ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
|
|
## From and Reply-To different
|
|
|
|
%patterns = (
|
|
q{ 3.3 FREEMAIL_FROM }, '',
|
|
q{ 3.3 FREEMAIL_REPLYTO }, '',
|
|
q{ 3.3 FREEMAIL_REPLYXX }, '',
|
|
q{ 3.3 FREEMAIL_ENVFROM_END_DIGIT }, '',
|
|
q{ 3.3 FREEMAIL_REPLYTO_END_DIGIT }, '',
|
|
q{ 3.3 FREEMAIL_HDR_REPLYTO }, '',
|
|
);
|
|
%anti_patterns = ();
|
|
|
|
tstlocalrules (q{
|
|
header FREEMAIL_FROM eval:check_freemail_from()
|
|
score FREEMAIL_FROM 3.3
|
|
header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto')
|
|
score FREEMAIL_REPLYTO 3.3
|
|
header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply')
|
|
score FREEMAIL_REPLYXX 3.3
|
|
header FREEMAIL_ENVFROM_END_DIGIT eval:check_freemail_header('EnvelopeFrom', '\d@')
|
|
score FREEMAIL_ENVFROM_END_DIGIT 3.3
|
|
header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@')
|
|
score FREEMAIL_REPLYTO_END_DIGIT 3.3
|
|
header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To')
|
|
score FREEMAIL_HDR_REPLYTO 3.3
|
|
});
|
|
|
|
ok sarun ("-L -t < data/spam/freemail1", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
|
|
## Multiple Reply-To values, no email on body
|
|
|
|
%patterns = (
|
|
q{ 3.3 FREEMAIL_REPLYTO }, '',
|
|
q{ 3.3 FREEMAIL_REPLYXX }, '',
|
|
q{ 3.3 FREEMAIL_REPLYTO_END_DIGIT }, '',
|
|
q{ 3.3 FREEMAIL_HDR_REPLYTO }, '',
|
|
);
|
|
%anti_patterns = ();
|
|
|
|
tstlocalrules (q{
|
|
header FREEMAIL_REPLYTO eval:check_freemail_replyto('replyto')
|
|
score FREEMAIL_REPLYTO 3.3
|
|
header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply')
|
|
score FREEMAIL_REPLYXX 3.3
|
|
header FREEMAIL_REPLYTO_END_DIGIT eval:check_freemail_header('Reply-To', '\d@')
|
|
score FREEMAIL_REPLYTO_END_DIGIT 3.3
|
|
header FREEMAIL_HDR_REPLYTO eval:check_freemail_header('Reply-To')
|
|
score FREEMAIL_HDR_REPLYTO 3.3
|
|
});
|
|
|
|
ok sarun ("-L -t < data/spam/freemail2", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
|
|
## No Reply-To, another freemail in body
|
|
|
|
%patterns = (
|
|
q{ 3.3 FREEMAIL_REPLYXX }, '',
|
|
);
|
|
%anti_patterns = ();
|
|
|
|
tstlocalrules (q{
|
|
header FREEMAIL_REPLYXX eval:check_freemail_replyto('reply')
|
|
score FREEMAIL_REPLYXX 3.3
|
|
});
|
|
|
|
ok sarun ("-L -t < data/spam/freemail3", \&patterns_run_cb);
|
|
ok_all_patterns();
|
|
|