UCEBgone Filter

UCEBgone is a (currently imaginary) mail filter program which can operate with any mailer that talks to a POP3 mail server. It replaces the remote POP3 server and acts as a local server which filters the remote mail before you see it. It runs on Windows NT or Windows 95. It can operate with a dial-up network connection or a direct internet link. Both the executable and the source code are freely available.

This document and the UCEBgone program and source code are all Copyright © Tom Horsley, 1997. All rights reserved. The right to unlimited distribution and use of this program is granted to anyone who agrees to keep the copyright notice intact and not alter the program.

Translation: You want changes in the program, make 'em yourself, but don't go distributing that changed version with my name on it (or with your name on it either, since you didn't write most of it :-). If there are changes you would like to see distributed, by all means send 'em in to me, and if I like 'em I'll incorporate them in the next version.


Vaporware Warning

Warning: This document is just a design out for review, the software (unfortunately) doesn't actually exist yet. As I refine the design, I'll be updating the document. You can also expect that not all features will be available when (or if) the first version is released.

I welcome feedback on the design, and suggestions for features, but sending mail every few days asking, "Is it done yet?", will not be a productive activity for anyone :-).

UCEBgone Features

UCE stands for Unsolicited Commercial Email (sometimes known as spam, or less printable epithets :-). UCEBgone is, therefore, a program with a primary mission of making the UCE disappear before you ever see it. However, it is suitable for many other kinds of mail filtering operations as well, and can be generally useful.

UCEBgone replaces your current mail server (or servers if you use more than one) with a local server which forwards requests to your original mail server. For example, if you currently tell your mail reader to get mail from some place like postoffice.isp.provider and you tell it your mail login ID is mymail@isp.provider, then to use the UCEBgone filter to intercept your mail and filter out what you don't want to see, you might define a mail login for UCEBgone named filter.isp.provider and record in that login account the fact that the real POP3 server is postoffice.isp.provider and the real login name is mymail@isp.provider. You then change your mail reader so it expects to get mail from localhost and login as filter.isp.provider.

Now, when you read mail, you will really be talking to UCEBgone, and it will be talking to the real mail server, giving it a chance to do things like examine the headers, look for people you don't want mail from and delete those messages before you ever see them, or route some mail to alternate mailboxes you can read later, etc. It can even examine the body of the message looking for phrases and patterns which indicate this might be some kind of UCE (of course, if it can make its decision from the headers alone, it doesn't have to waste the time to download the body, it can just delete it on the original mail server).

If your current mail reader supports some kinds of filtering, but isn't as smart as UCEBgone, you can still use your current filter setup, but have UCEBgone add headers to your mail, which your reader's filter can easily match. This allows you to stick with the filtering system you are familiar with, but raise its IQ a bit.

Because so much UCE is being stuffed in MIME envelopes these days, UCEBgone has to know how to interpret at least some MIME attachments so it can scan them for possible UCE indications. As long as it can do this, it provides you the option of "killing the mime", decoding the attachments and leaving them in files with the filename left in the message. UCEBgone is equipped to recognize HTML markup and scan the contained text for UCE patterns. Of course if you (like me) despise MIME (or at least the most common case where ordinary text is MIME encoded for no reason other than making it difficult to read), UCEBgone can make the MIME disappear before you ever see it, just like the UCE :-).

To give UCEBgone the ultimate flexibility, it is also capable of running external programs to do additional filtering, or (if I ever understand how to do it), talking to the OLE generic scripting language interface to run arbitrary scripts to influence the filtering process.

UCEBgone operates with a library of filter scripts. You may only have one script, or you may have a large collection of scripts. Each mail message may be passed from one script to another, with different kinds of filtering happening in each script. You can think of it as kind of like routing a physical mail package. When the mail gets dropped in the mailbox, it is eventually collected, and the local post office sorts it by zip code. One piece of mail gets sent to one part of the country, the next piece goes somewhere else. When it gets to the right region, another post office looks at a different part of the zip code to route it closer to its destination. The last stage of sorting is done by the mail carrier looking at the street address and finally dropping it into the right mailbox.

The UCEBgone filter operates the same way. For any given mail login account, all the mail goes first to the filter script associated with that account. It can look at any of the headers or the body (a lot more than just the zip code :-) to decide where to send the mail next. It can go to another script for additional processing, or it can be dropped in a mailbox or even a trash can. Just as the post office stamps mail with postmarks, bar codes, "return to sender" messages, etc., you can add headers to the mail as it flows through the system to provide notations for other scripts to use, or simply for you to see once you read the mail.

Unlike physical mail, however, you can make copies of email and send them off in different directions. You might want to archive mail for storage, but also send a copy to an active mailbox you will read soon, or if you are sorting mail based on some kind of content criteria, you may decide one piece of mail is relevant to two different mailboxes.

(By the way, I have read the internet draft for the SIEVE filtering language, and I'm not very impressed either with its features or its simplicity, so the decision to ignore it was a consious one).

I have also read up on IMAP, and while I agree that IMAP probably works better (especially for supporting multiple mailboxes), it is also more complex and there aren't as many mail readers that take it yet. A future version may include IMAP support.

Filter Scripts

Think of something to put here...

Download UCEBgone

Hey! I told you it was still vaporware! You can't download it yet!

Deep Thoughts

UCE gets me steamed, but the idea of people making money off of it gets me even hotter (especially the spammers who are selling mail blocking software)! This program is free because I want people to be able to stop this menace without having to pay extortion money.

If you are so glad to have this free program that you are anxious to send me money anyway, then please do something else for me instead. Take a look at the other, non-software, half of my web page over at http://home.att.net/~Tom.Horsley/politics.html. Write your congressman, tell him to read it. Steal the ideas, run for office yourself. If you happen to know Colin Powell's or Ross Perot's private phone number, give 'em a call and tell 'em about it :-).


[Back to Homepage]