Spread Thunderbird

Thunderbird Configuration

Notes on what I did to configure Thunderbird.

Introduction

For years, I was a devoted Alpine user. And before Alpine it was Pine. Pine/Alpine is a text based MUA which was highly flexible. I need this flexibility because I don't know anyone who uses email as hard as me. After years of Alpine , I finally got to the point where I needed something new. Alpine solves a number of problems for me.

Making the decision to switch over is somewhat of a commitment. I'm documenting what I did so that it might help others. The changes I have made fall into a number of basic categories:

  1. Setting up dovecot to be the IMAP server that Thunderbird talks to.
  2. Setting up to use TLS TBD
  3. Porting data from Alpine to Thunderbird
  4. Addons
  5. Native configuration
  6. Spam controls

Note that the native configuration breaks apart into Preferences and Account Settings. It was not always easy to understand which was which

Thunderbird Links

Before we get started, I need to give you a list of links for how to get Thunderbird and all the rest of places that I found useful to get me set up.

Setting up dovecot

Thunderbird does not have the ability to look at your local mail files. Initially, that bothered me and caused me to think about using evolution instead (which does support local mail). OTOH, Thunderbird says you have to use pop3 or imap. The bottom line is that I went for it, and set up dovecot which is the IMAP server for linux. AFAICT, it's a good tight piece of work and seems to be working fine for me.

So the first thing is to set up dovecot. Setting it up wasn't a big deal. I shut off IPV6 and only enabled imap and imaps. I don't yet have the imaps stuff working so neither are open to the firewall. Obviously, when I get to the imaps stuff then I can open imaps up to the firewall.

The only other thng that needed to be set was where to find the mail files:

This seemed to do the trick:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Getting my Alpine addressbooks into Thunderbird.

This turned out to be a huge pain. I have a half dozen addressbooks and I had all kinds of trouble figuring out how to get them migrated over. The basic gist of it is this:

The Addons I use

I have a number of addons to my Thunderbird configuration. I expect that these will change but this is the score as I write this. Today I'm running Thunderbird 2.0.0.21 under Fedora 10.

Here are the list of addons.

That's it for the Addons.

Config changes

Now we can look at the things I have changed in my configuration file. The prefs.js lives in your Thunderbird configuration. I have no idea how Winbloze works but in Linux you'll find it in ~/.thunderbird.

You can get to all kinds of preferences through the Edit -> Preferences menu, and there are all sorts of other things that are accessible through Edit -> Account Settings. What I'm focusing on here is the content of the prefs.js file which can be edited by
Edit -> Preferences -> Advanced -> General -> Config Editor

You can edit these settings using the Config Editor or you can exit Thunderbird and edit it using the editor of your choice. Just don't edit it while Thunderbird is running. That's something that George Bush would do.

mailnews.display.original_date
I have this set to true. Docs say something about how this affects the dates being displayed in mail headers but does not affect the index display.
mail.account.account2.identities
This is tricky, but it looks like account2 is your first user account. Account1 is your server account (or maybe your first server account). But if you want your (first) user account to have multiple identities, then this will contain the names of those identities. For example, if you have three idenities, then you could have a value of "id1,id2,id3" and you would then have lots of definitions for things that were prefixed with mail.identity.id 1,2 or 3.
mail.identity.idN.headers

The N in idN that I refer to is some number, but the value of this variable is a CSV of variables and values which are now in need of definition. The purpose is to define headers for your email that will be added if you select this identity when you compose a message. So, for example, if you want a Foo header to have a value called Bar when using the third Identity, then you will add (something like) mail.identity.id3.headers with a value of "Foo: Bar".

One thing I found out the hard way is that it doesn't help to define a To: header this way if you're always going to use an identity to send to a particular address. The additional headers don't get added until after the Send button is hit. Before that Thunderbird will complain that there are no recipients.

mailnews.reply_header_type

I have mine set to 2. The choices are documented . The fact is that there's a known bug in Thunderbird that prevents you from using the strftime(3) formatting strings to get it right. I just wanted my reply header to contain the time that the message was sent but in the timezone that it was sent from. Alas, not today.

I was not happy with the way threading was displayed. I found this link on thread management which told me to set mail.thread_without_re to false and mail.strict_threading to true. The problem was that if I have a thread and I delete the first message where the rest are children, then the next one after the deleted one is shown as the parent. Not cool.

Besides setting things in the prefs.js file, there are lots of things that you can get direct access to if you can just find them in either the Preferences or Account settings.

In the Edit -> Preferences -> Advanced -> general -> "show only display name for people in my address book" I found that I needed to uncheck that option. Life was very complicated trying to figure out who the mail was sent to before I fixed that.

Spam Processing

I take my spam very seriously. How serious am I? I'm running + spamassassin + spamass-milter + clamav-milter and then whatever gets through, which isn't very much, gets reported to spamcop . In addition, I also recently got an account over at knujon . And because the small amount of spam that does get through needs to go through Bayesian retraining, that aspect of the equation needs to be factored in as well.

It turns out that Thunderbird has nothing that will allow me to pipe a message to a program. So until I find something better, I have to manually save each message to a file and then run my script using that saved message as input.

Here's the spam script I wrote:


                #! /bin/bash
                tfile=/tmp/spam.$$
                cat > $tfile
                mutt -a $tfile -s 'spam submittal'  
                sa-learn --spam < $tfile
                rm -f $tfile
                

Obviously, the xyz account is a phakeroo. But note that the script does nothing to get the spam to knujon , even though I went out of my way to set up an account with them. The solution is that when you set up your spamcop account, there is a preference you can set to cause copies of your reports to go to knujon . Look in

Preferences -> Report Handling Options -> Public standard report recipients

Just set your knujon address in that field and they'll take care of the copy.

Also, I use a utility called spamcup that allows me to confirm all of the spamcop messages that I report. Run that from the commandline and it all gets confirmed at once.

Note that spamcup is just a small perl program that is no longer active, but it still works. And the alternative of not using it is quite horrific.

BTW, if anyone can figure out how to pipe a message from Thunderbird, please let me know.

Problems I have with Thunderbird.

There are a few things that just don't work right. I do try to track them down, but in some cases, the problem is well known, loudly complained about and persists.