Mail Milestone
Continuing my explorations that started last year at this time. My goal is to continue to self host my mail archive, while adding allow concurrent access and offline replication on a number of machines.
Following are the components I have installed and configured, with notes of issues I have encountered and resolved along the way. Everything below is based on Ubuntu 10.04.1 LTS.
Dovecot
Dovecot was not happy with the postmaster listed. Fix was to ensure that the postmaster
specified in etc/dovecot/conf.d/01-dovecot-postfix.conf
has localhost
as the hostname.
user postfix
needs to have read access to the SSL pem and key files. Placed them (mod 0400 owner=dovecot) in /etc/dovecot
Useful command for debugging:
sudo -u dovecot dovecot -a
Postfix
Enabled smtps by uncommenting three lines in /etc/postfix/master.cf
smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Fetchmail
Add the following to .fetchmailrc
:
mda /usr/bin/procmail
Very useful .fetchmailrc
keywords for initial testing: uidl
and keep
ProcMail
Procmail was not happy with the IPv6 entry for localhost; deleted it from /etc/hosts
Example procmail recipe:
DELIVER="/usr/lib/dovecot/deliver" :0 w | $DELIVER
Thunderbird
A number of usability issues, examples:
- Set BOTH edit/preferences/security/junk AND edit/acct settings/server/Junk Settings
- File/subscribe to discover new folders, and go into folder properties to ensure folder is checked for new messages.
Worhtwhile add-on: Custom Buttons
Example button:
var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath('/usr/bin/ssh'); // create an nsIProcess var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); // Run the process. // If first param is true, calling thread will be blocked until // called process terminates. // Params are used to pass command-line arguments // to the process // process.run(block, args, args.length); process.run(false, ['rubix', 'fetchmail'], 2);
For best results, use an 32x32 icon with a transparent background
SpamAssassin
Edit /etd/default/spamassassin
:
ENABLED=1
Edit /etc/spamassassin/local.cf
:
report_safe 0
Procmail recipe:
# SpamAssassin :0fw: spamassassin.lock * < 256000 | spamassassin :0 * ^X-Spam-Status: Yes | $DELIVER -m Spam