Download only certain POP messages
From MozillaZine Knowledge Base
Automating which message bodies are downloaded
Normally when you check for new messages in a POP3 account, all new messages are downloaded. However, you may want to only retrieve messages meeting certain criteria. One way to do this is to fetch only the headers and then set up a message filter to determine which should be downloaded.
You can configure Thunderbird to download only the message headers via "Tools → Account Settings → Account Name → Server Settings → Fetch headers only." You can then create a message filter that tests (for example) whether the sender was in your address book, and checkmark the "fetch body from POP server" action for the filter. If you have a slow internet connection and don't want to automaticly download large messages you could also test whether the size is less than some limit. In this way, any valid message filter rule can be used to determine whether you want to download the message body.
Any messages whose message body wasn't downloaded will display "Only the headers for this message were downloaded from the mail server. Click here to download the rest of the message." instead of the actual message body. If you click on that link it will cause Thunderbird to download the message body.
Silently ignore pests
If you want to silently ignore all mail from somebody add another message filter that moves a message (in this case just the header) to the junk mail folder if "From" "contains" "their email address". This works best if Tools -> Account Settings -> Server Settings is set to something like "Leave messages on server -> Until I delete them" and you configure the junk mail folder to automatically delete any messages older than 30 days. That way you have the chance to change your mind or recover from a mistake, and don't have to worry about the messages filling up your mailbox.
Integrating it with Spam detection
Tools -> Junk Mail Controls has a setting to tell Thunderbird to trust junk mail headers set by either SpamPal or SpamAssassin. SpamPal checks the senders address against DNSBL lists so it doesn't need to download the message body to decide if a message is Spam or not. One way to filter Spam without having to download it would be to:
Note: If you are using the RegExFilter plugin with SpamPal, if "Fetch headers only" is enabled in TB, the SpamPal header comes through, but the RegEx headers do not. This means that you would not be able to filter off of RegEx headers in TB if "Fetch headers only" is enabled. A fix for this is to add the line 'CHECK PREVIEW' to the RegExFilter rulefile (causes the RegEx headers to be added to the downloaded message headers - however certain other RegExFilter functions may be disabled as a result of that line - see SpamPal FAQ no. 114, http://spampal.sidak.net/usermanual/faq.htm#q56, for more complete information).
MailWasher Pro is a popular commercial utility that you could use instead that is well known for its ability to let you preview the headers (and delete spam) before downloading any messages. It also provides its own spam database, Bayesian filtering, and the ability to report spam to SpamCop. You can duplicate some of its features with add-ons and some other free utilities, the main drawback is they won't be as integrated. For example, you can use:
EmailTray is a email notification tool that analyzes and prioritize your messages based on your habits and what interactions you've had with the sender. Its not a anti-spam tool but it can monitor your email providers spam folders and alert you if it finds it has a message from a High priority contact. The MailClassifier add-on uses Bayesian filtering to move messages to the right folder. While neither of those two programs is designed to be integrated with the message filters they might give you some ideas about combining multiple tools/add-ons.
"Delete from Pop3 server" in the message filter will not delete the message from the POP server if you enable Tools -> Options -> Privacy -> Antivirus -> Allow anti-virus clients to quarantine individual incoming messages . See this bug report for more information.