diff options
author | Eric Wong <e@80x24.org> | 2014-04-19 23:23:10 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2014-04-19 23:27:18 +0000 |
commit | a8d9e2f1853032016db6ff177979873b3bdadd85 (patch) | |
tree | 8f76f5c29c205412d843f3c58ebccc9c74cdc936 /lib/PublicInbox/MDA.pm | |
parent | 4024aae69fe08c0aa14a69a12d55ca2b7dd4a4ab (diff) | |
download | public-inbox-a8d9e2f1853032016db6ff177979873b3bdadd85.tar.gz |
We need -learn to do many of the same things as -mda when we have a false-positive. We also need -learn to do HTML filtering in case the training user screws up.
Diffstat (limited to 'lib/PublicInbox/MDA.pm')
-rw-r--r-- | lib/PublicInbox/MDA.pm | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/PublicInbox/MDA.pm b/lib/PublicInbox/MDA.pm index 22879236..bb14ae50 100644 --- a/lib/PublicInbox/MDA.pm +++ b/lib/PublicInbox/MDA.pm @@ -4,8 +4,10 @@ package PublicInbox::MDA; use strict; use warnings; use Email::Address; +use Encode qw/decode encode/; use Date::Parse qw(strptime); use constant MAX_SIZE => 1024 * 500; # same as spamc default +use constant cmd => qw/ssoma-mda -1/; # drop plus addressing for matching sub __drop_plus { @@ -53,4 +55,32 @@ sub recipient_specified { return 0; } +# RFC2919 and RFC2369 +sub set_list_headers { + my ($class, $simple, $dst) = @_; + my $pa = "<$dst->{-primary_address}>"; + $simple->header_set("List-Id", $pa); + $simple->header_set("List-Post", $pa); + + my $url = $dst->{url}; + if (defined $url) { + $simple->header_set("List-Archive", "<$url>"); + $simple->header_set("List-Help", "<${url}help>"); + } +} + +# returns a 3-element array: name, email, date +sub author_info { + my ($class, $simple) = @_; + + my $from = decode('MIME-Header', $simple->header('From')); + $from = encode('utf8', $from); + my @from = Email::Address->parse($from); + my $name = $from[0]->name; + defined $name or $name = ''; + my $email = $from[0]->address; + defined $email or $email = ''; + ($name, $email, $simple->header('Date')); +} + 1; |