I'm trying to read local mail with Thunderbird on Ubuntu (with both 12.04 and 13.04). I've followed the instructions found here: How can I access system mail in /var/mail/ via thunderbird?
I can read mail on the system using alpine or vim, so I know the mailbox is not empty. When I click the get-mail button, nothing happens. I see no Inbox (or any folder structure) for the specific account. I've set the rights for /var/mail to 1777.
Settings
- server name: localhost
- username: john
How can I get this working?
Okay, considering the extra bounty, I would like to get this working like normal mail. The accepted answer from Qasim resulted in a much more usable situation than before - opening mail in Thunderbird with layout. I still face three problems though.
- When new mail is received in the mailbox, Thunderbird won't see this until after I restart Thunderbird.
- When Thunderbird is restarted, all mail is reset to unread and deleted mail is undone. This is probably because Thunderbird reads the mail from the /var/mail/www-data file, but doesn't update this file. So after restarting, it simply reads this file again, with the new mail and all old mail.
- This is probably a postfix issue: mail is sent out to existing mail addresses, but cannot be delivered because the receiving mailserver cannot be reached. This results in "Undelivered mail returned to sender". Only one mailserver can be reached: localhost. Because this is a test system, I don't want real customers to receive mail. I've blocked mail ports in UFW to be sure.
When opening the returned mail, I can scroll down and then I see the original mail with proper layout. So I can read the mail, see if the proper images are included, and for me that's workable. Having to restart TB to read new mail - I know when new mail arrives, so I know when to restart. Having old mail restored after a restart - not big problem as well. I can delete the mail file if it gets too much. I know how it works, but it would be nice if it worked like normal.
Read Local Email With Thunderbird
Watch Vido
If installed
configure it for local email, Choose the default settings & use
localhost
as hostnameAnd replace root with your user name, My user name is " one "
Then run
sudo newaliases
so that the configuration is updated.you need to create a .forward file containing your username and localhost: e.g. one@localhost so that root's mail will be forwarded to you. To do this, enter these commands:
And add the user-name@localhost e.g. one@localhost in the file and save it.
It is necessary to add your user to the mail group so that Thunderbird could access the mail files
Now for the Thunderbird configuration. Go to edit > account settings > account actions > add other account > select Unix Mailspool and in the next screen put your username in the first box and place yourusername@localhost in the second box.
@Qasim hit most of the points, thank you!
Here are some additional tips about file permissions, etc.
1 - But first, before starting, I strongly suggest you backup both your entire
~/.thunderbird/
and/var/mail/
folders.Use something like this:
2 - Now, you need to think about file permissions.
You are probably running Thunderbird in a user account, and not from root.
So let's say you're Joe and running Thunderbird. This means that the folders and files that Thunderbird needs to use must be available to Joe.
In particular,
/var/mail/
needs to allow Joe to read and write files in it, so it either needs to be owned by Joe, or needs to allow group or world permission to Joe.Same for the files within
/var/mail/
, i.e. your mail spool file(s), e.g. mail, or joe, etc. need to allow Joe to read and write them.You might have to chown them to Joe, or chmod them to allow Joe to read and write to them.
Note that the older default mail spool location is soft linked to the new default mail spool location, as follows:
3 - Here are screen shots of what worked for me with a few comments:
The following is the address that is used for sending. I found later that I could not forward emails with this as it is, and had to instead replace the 'localhost' in it with a real domain name.
Note,
Next
won't become active above until you enter a valid domain name, in this case 'localhost'.4 - Next we need to point this new account to
/var/mail/
But I stumbled here, and Thunderbird for a moment seemed buggy to me. Be sure that you edit the new account's server settings, and not your local folder's settings.
Note: Even after I set the
Local directory:
, theMessage Store Type
remains grayed out for me. Perhaps Thunderbird automatically figures this out.Then it prompts for to restart Thunderbird:
After the reboot I finally get these two folders. Inbox still is empty, but the folders allow me to view, copy print, etc the email in them.
Usage tip: Right clicking on
mail@localhost
and then selectingGet Messages
re-reads my two folders and puts any new message in them intoInbox
, before clearing these folders.Note the new
msgFilterFules.dat
,Sent
,Sent.msf
,Trash
,Trash.msf
and other related.msf
files in your mail folder.Also note that you can have more than one of these accounts. I had noticed that I also had a
/home/<username>/mail/
folder and so hooked this up with a 2nd account for debugging.Now I have to go figure out if exim will allow the new folder and file permission settings... :-.
(For the record, I'm on Debian Stretch 9.6, but otherwise this seems to be the same as for Ubuntu. I'm running Thunderbird 60.3 - 64 bit.)
Unfortunately, Thunderbird removed the ability to create a "movemail" account as of version 87. Therefore, setting up Thunderbird as described in this answer will not work.
What you have to do, after installing and setting up Postfix, is as described in that same answer, is install and setup dovecot. This would move your mail for you internally, and then you setup Thunderbird. Here are the steps.
Install dovecot:
sudo apt install dovecot-imapd
Setup Thunderbird. By adding a new account, and setting it as follows:
Your Name:
Email address: @localhost
IMAP Mail Server Settings:
SMTP server settings are:
Please note, for further reading, I used this thread as a reference.
Setup a movemail account and restart Thunderbird (the directory structure will appear after that).
Regarding points 1 & 2:
please make sure that:
This way Thunderbird will automatically read new mail from /var/spool/mail/john, and move it to its internal mailbox file located at e.g. ~/.thunderbird//Mail/Inbox [1].
AFAIK, there's no way to point Thunderbird to an input mailbox different from /var/spool/mail/, so you should configure your MTA (e.g. postfix) accordingly.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1400507#c3