Quantcast
Channel: Planet Apache
Viewing all articles
Browse latest Browse all 9364

Sam Ruby: Mail Milestone

$
0
0

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

Viewing all articles
Browse latest Browse all 9364

Trending Articles