Why not do a simple rule rather than inventing some Perl code?
header TO_SPECIFIC_EMAIL To:addr ~=
'(?:\[email protected]|\[email protected]|\[email protected])'
describe TO_SPECIFIC_EMAIL Mail to a specific email address
score TO_SPECIFIC_EMAIL -2
header TO_SPECIFIC_DOMAIN To:addr '(?:'\@example1\.com | \@example2\.com |
\@example3\.com)'
describe TO_SPECIFIC_DOMAIN Mail to specific email domain
score TO_SPECIFIC_DOMAIN -2
or possibly
header TO_SPECIFIC_DOMAIN To:addr '\@(?:example1\.com | example2\.com |
example3\.com)$'
Loren
----- Original Message -----
From: Joey J
To: [email protected]
Sent: Wednesday, January 11, 2023 3:39 PM
Subject: Rule Help - not sure what is wrong with my syntax
Hello All,
I created this rule to check for email addresses matching a list to get added
some negative value.
I also tried it with just domains so it would be more efficient, but I can't
seem to get them to run.
Any suggestions?
header TO_SPECIFIC_EMAIL eval:check_to_specific_email()
describe TO_SPECIFIC_EMAIL Mail to a specific email address
score TO_SPECIFIC_EMAIL -2
sub check_to_specific_email {
my ($self) = @_;
my $to = lc($self->get('To:addr'));
my $list_of_address =
qr/[email protected]|[email protected]|[email protected]/;
if ($to =~ $list_of_address) {
return 1;
}
return 0;
}
--------------------------------------------------------------------
This version was to simply check for the domain matches, but can't seem to
get it to work
--------------------------------------------------------------------
header TO_SPECIFIC_DOMAIN eval:check_to_specific_domain()
describe TO_SPECIFIC_DOMAIN Mail to specific email domain
score TO_SPECIFIC_DOMAIN -2
sub check_to_specific_domain {
my ($self) = @_;
my $to = lc($self->get('To:addr'));
if ($to =~ /\@example1\.com$|\@example2\.com$|\@example3\.com$/) {
return 1;
}
return 0;
}
--
Thanks!
Joey