Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tools:spamd [2022/07/10 13:16] – [Update] darron | tools:spamd [2022/07/12 13:25] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 29: | Line 29: | ||
==Update== | ==Update== | ||
- | Run from cron once per day, week or month to download new | + | Run from cron once per day to download new rules and recompile. |
- | rules and recompile. | + | |
__update-spamd.sh__ | __update-spamd.sh__ | ||
Line 36: | Line 35: | ||
#! /bin/sh | #! /bin/sh | ||
sa-update --nogpg | sa-update --nogpg | ||
- | compile-spamd.sh | + | if test $? -eq 0; then |
+ | | ||
+ | fi | ||
exit 0 | exit 0 | ||
</ | </ | ||
Line 49: | Line 50: | ||
exec / | exec / | ||
</ | </ | ||
+ | |||
+ | === Plugin=== | ||
+ | |||
+ | Example plugin I wrote to catch fake mailing list spam. | ||
+ | |||
+ | < | ||
+ | #! / | ||
+ | # | ||
+ | # By | ||
+ | # | ||
+ | # | ||
+ | # See | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # / | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | package LocalPlugin; | ||
+ | |||
+ | use Mail:: | ||
+ | use Mail:: | ||
+ | use Mail:: | ||
+ | |||
+ | our @ISA = qw(Mail:: | ||
+ | |||
+ | sub new | ||
+ | { | ||
+ | my($class, $mailsa) = @_; | ||
+ | |||
+ | $class = ref($class) || $class; | ||
+ | my $self = $class-> | ||
+ | bless ($self, $class); | ||
+ | |||
+ | $self-> | ||
+ | |||
+ | info(" | ||
+ | |||
+ | return $self; | ||
+ | } | ||
+ | |||
+ | sub check_for_fake_list | ||
+ | { | ||
+ | my($self, $permsgstatus) = @_; | ||
+ | |||
+ | $from = $permsgstatus-> | ||
+ | my @to = split /@/, $permsgstatus-> | ||
+ | my $name = $to[0]; | ||
+ | my $host = $to[1]; | ||
+ | if ($from && $name && $host) { | ||
+ | # *mail-user=host@mail.* | ||
+ | if ((index $from, " | ||
+ | info(" | ||
+ | return 1; | ||
+ | } | ||
+ | # newsletter-user=host@mail.* | ||
+ | if ((rindex $from, " | ||
+ | info(" | ||
+ | return 1; | ||
+ | } | ||
+ | } | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | 1; | ||
+ | |||
+ | # vim: shiftwidth=4 tabstop=4 noexpandtab | ||
+ | </ | ||
+ | |||
+ | ===Spam=== | ||
+ | |||
+ | Here is a PHP command line tool to send test spam. | ||
+ | |||
+ | Change Host, Sender and addAddress as appropriate. | ||
+ | |||
+ | < | ||
+ | #! / | ||
+ | <?php | ||
+ | /* DEBIAN BUSTER */ | ||
+ | require_once ' | ||
+ | require_once ' | ||
+ | require_once ' | ||
+ | require_once ' | ||
+ | require_once ' | ||
+ | |||
+ | use PHPMailer\PHPMailer\PHPMailer; | ||
+ | use PHPMailer\PHPMailer\SMTP; | ||
+ | use PHPMailer\PHPMailer\Exception; | ||
+ | |||
+ | $mail = new PHPMailer(true); | ||
+ | |||
+ | $mail-> | ||
+ | $mail-> | ||
+ | $mail-> | ||
+ | $mail-> | ||
+ | |||
+ | $mail-> | ||
+ | |||
+ | $mail-> | ||
+ | $mail-> | ||
+ | $mail-> | ||
+ | |||
+ | $mail-> | ||
+ | $mail-> | ||
+ | $mail-> | ||
+ | |||
+ | try { | ||
+ | $mail-> | ||
+ | } | ||
+ | catch (Exception $e) { | ||
+ | echo $e-> | ||
+ | } | ||
+ | /* | ||
+ | * vim: shiftwidth=4 tabstop=4 softtabstop=4 expandtab | ||
+ | */ | ||
+ | ?> | ||
+ | </ | ||
+ |