I've owned sporty.org for a long time. Almost 10 years now. I get a lot of spam and legit email to the email addresses I maintain on it. I use this script to server-side filter mail into folders for me. It's for use with qmail using Maildir format. It's short enough that it should be self explanitory.
If I was smart, I'd make it a daemon with a c-written lightweight client. Bah, I'm not annoyed enough yet. :)
use File::Temp;
use Mail::Internet;
use strict;
my $folderList = undef;
open( $folderList, ".folderFilter" );
my @folders = <$folderList>;
my @mail = <>;
my $message = Mail::Internet->new( \@mail );
my $mailFrom = $message->head->get("From");
# The RFC says one thing, but sometimes, people leave it out.
$mailFrom = $1 if( $mailFrom =~ /<(.*?)>/ );
foreach my $folder ( @folders )
{
my( $folder, $from ) = split( /\|/, $folder );
if( $from =~ /\Q$mailFrom\E/ )
{
writeMail( "Maildir/$folder/new" );
exit( 0 );
}
}
writeMail( "Maildir/.unrecognized/new" );
sub writeMail
{
my $folder = shift;
my $timestamp = time();
my $fileHandle = new File::Temp( TEMPLATE => "$timestamp.XXXXXX",
+DIR=> $fol
der, UNLINK => 0 );
$message->print( $fileHandle );
close( $fileHandle );
}
----
Give me strength for today..
I will not talk it away..
Just for a moment..
It will burn through the clouds..
and shine down on me.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.