From: Dick Davies Date: 2004-11-11T06:41:45+09:00 Subject: Re: Ruby and Mozilla? * Hal Fulton [1152 20:52]: > Bradley, Todd wrote: > Yes, well, I wasn't really looking for a Moz-specific solution... > unless there was one that required less coding. > > >1) Write a Ruby POP3 client that analyzes message in-situ and deletes > >the ones off the server that you don't like. Then, when your regular > >POP3 client (Mozilla in this case) goes to suck in mail off the server, > >the spam's already gone. This is the approach taken by SpamEater Pro, > >for instance. > > Yes, I thought of this, and it would be fairly easy. > > Trouble is, I spend *many* hours in front of the computer each day. My > mail client is pretty much always up and it hits the server every > 60 seconds. Bet you're popular with your ISP :) > >2) Write a Ruby POP3 client that sits between your mail reader and the > >server. It acts as a proxy and listens on your local host's mail port. > >You set your mail reader (Mozilla) to connect to localhost instead of > >pop3.myisp.com. When the proxy gets a request for messages, it wakes up > >and requests messages from your real server (pop3.myisp.com), then > >passes through the ones it thinks aren't spam. This is the approach > >taken by every anti-virus program I've seen. > > OK, I wouldn't mind doing this... but I'm not sure how to create a > proxy. Do I actually run a real pop3 server or what? Duh? I think what's being suggested is to code your own pop3 server - I'm assuming Bradley meant localhost:110 when he said "local host's mail port" - that's actually fairly simple (pop3 is a pretty trivial protocol, and the ruby pop3 library should do all the client side for you)). The tricky bit is the spam filtering, which I presume is where Gurgitate comes in - although I know precisely zip about it, I'd hope you could just feed a mail (String) into a is_spam? method to scan it. Personally I've made the switch to an IMAP server and never looked back; the protocol is a lot more complicated, but lets multiple clients use the same Sent/Drafts/Trash/Spam folders - even notifies mutt on my BSD box that I just read a message with Thunderbird on the eMac. Add an LDAP address book and I get to keep almost all my mail settings on the server, backed up once, and never have to try to remember what Sent folder that mail was in... [ Hats off to whoever wrote our Net::IMAP libs incidentally, they are a joy to use. ] Each client doing its own Bayesian training would drive me potty, so I've rolled together a SpamAssassin and Sieve combo which seems to work fairly well. Combined with exims exiscan, I get to tell spammers where to go at SMTP time rather than scanning mails after I've accepted them, which keeps the queue relatively free of the hundreds of bounce messages I had before. -- Yeah, life is hilariously cruel. - Bender Rasputin :: Jack of All Trades - Master of Nuns