.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" 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::SpamAssassin::Plugin::Esp 3pm" .TH Mail::SpamAssassin::Plugin::Esp 3pm "2022-05-05" "perl v5.34.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" Esp \- checks ESP abused accounts .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& loadplugin Mail::SpamAssassin::Plugin::Esp .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This plugin checks emails coming from \s-1ESP\s0 abused accounts. .SH "SYNOPSIS" .IX Header "SYNOPSIS" loadplugin Mail::SpamAssassin::Plugin::Esp Esp.pm .PP ifplugin Mail::SpamAssassin::Plugin::Esp .PP .Vb 2 \& sendgrid_feed /etc/spamassassin/sendgrid\-id\-dnsbl.txt,/etc/spamassassin/sendgrid\-id\-local.txt \& sendgrid_domains_feed /etc/spamassassin/sendgrid\-envelopefromdomain\-dnsbl.txt \& \& header SPBL_SENDGRID eval:esp_sendgrid_check() \& describe SPBL_SENDGRID Message from Sendgrid abused account .Ve .PP endif .PP Usage: .PP .Vb 2 \& esp_constantcontact_check() \& Checks for Constant Contact id abused accounts \& \& esp_mailchimp_check() \& Checks for Mailchimp abused accounts \& \& esp_maildome_check() \& Checks for Maildome abused accounts \& \& esp_mailgun_check() \& Checks for Mailgun abused accounts \& \& esp_mailup_check() \& Checks for Mailup abused accounts \& \& esp_mdrctr_check() \& Checks for Mdirector id abused accounts \& \& esp_sendgrid_check() \& Checks for Sendgrid abused accounts (both id and domains) \& \& esp_sendgrid_check_id() \& Checks for Sendgrid id abused accounts \& \& esp_sendgrid_check_domain() \& Checks for Sendgrid domains abused accounts \& \& esp_sendindblue_check() \& Checks for Sendinblue abused accounts .Ve .SH "ADMINISTRATOR SETTINGS" .IX Header "ADMINISTRATOR SETTINGS" .IP "constantcontact_feed [...]" 4 .IX Item "constantcontact_feed [...]" A list of files with abused Constant Contact accounts. Files can be separated by a comma. .IP "mailchimp_feed [...]" 4 .IX Item "mailchimp_feed [...]" A list of files with abused Mailchimp accounts. Files can be separated by a comma. .IP "maildome_feed [...]" 4 .IX Item "maildome_feed [...]" A list of files with abused Maildome accounts. Files can be separated by a comma. .IP "mailgun_feed [...]" 4 .IX Item "mailgun_feed [...]" A list of files with abused Mailgun accounts. Files can be separated by a comma. .IP "mailup_feed [...]" 4 .IX Item "mailup_feed [...]" A list of files with abused Mailup accounts. Files can be separated by a comma. .IP "mdrctr_feed [...]" 4 .IX Item "mdrctr_feed [...]" A list of files with abused Mdirector accounts. Files can be separated by a comma. .IP "sendgrid_domains_feed [...]" 4 .IX Item "sendgrid_domains_feed [...]" A list of files with abused domains managed by Sendgrid. Files can be separated by a comma. More info at https://www.invaluement.com/serviceproviderdnsbl/. Data file can be downloaded from https://www.invaluement.com/spdata/sendgrid\-envelopefromdomain\-dnsbl.txt. .IP "sendgrid_feed [...]" 4 .IX Item "sendgrid_feed [...]" A list of files with all abused Sendgrid accounts. Files can be separated by a comma. More info at https://www.invaluement.com/serviceproviderdnsbl/. Data file can be downloaded from https://www.invaluement.com/spdata/sendgrid\-id\-dnsbl.txt. .IP "sendinblue_feed [...]" 4 .IX Item "sendinblue_feed [...]" A list of files with abused Sendinblue accounts. Files can be separated by a comma. .SH "TEMPLATE TAGS" .IX Header "TEMPLATE TAGS" .RS 4 The plugin sets some tags when a rule match, those tags can be used to use direct queries against rbl. .Sp If direct queries are used the main rule will be used only to set the tag and the score should be added to the askdns rule. .Sp .Vb 4 \& ifplugin Mail::SpamAssassin::Plugin::AskDNS \& askdns SENDGRID_ID _SENDGRIDID_.rbl.domain.tld A 127.0.0.2 \& describe SENDGRID_ID Sendgrid account matches rbl \& endif .Ve .Sp Tags that the plugin could set are: .RE .IP "\(bu" 4 \&\s-1CONSTANTCONTACTID\s0 .IP "\(bu" 4 \&\s-1MAILCHIMPID\s0 .IP "\(bu" 4 \&\s-1MAILDOMEID\s0 .IP "\(bu" 4 \&\s-1MAILGUNID\s0 .IP "\(bu" 4 \&\s-1MAILUPID\s0 .IP "\(bu" 4 \&\s-1MDRCTRID\s0 .IP "\(bu" 4 \&\s-1SENDGRIDDOM\s0 .IP "\(bu" 4 \&\s-1SENDGRIDID\s0 .IP "\(bu" 4 \&\s-1SENDINBLUEID\s0