On Wed, 2015-10-14 at 10:36 -0400, Bill Cole wrote: > Self-hosting email is feasible if you have a proper business-fit > Internet connection: static IP, rDNS in your own domain, no filtering > or DNS hijacking. MacOS X Server isn't a horrible (any more... ) mail > server and if you're willing to manage it in Terminal, any old Mac > can take a Postfix installation much like any other Unix-flavored OS > and use SA via AmavisD (most common) or MIMEDefang (my preference). > If your own connectivity isn't suited for self-hosting, there are > specialist MacOS X hosting operations out there. > Actually, the there *is* one way that a small volume user can run their own MTA and do it without port forwarding making holes in your firewall. This is to use getmail to retrieve your mail from your ISP's smarthost via a POP3 connection and deliver it to your MTA. Outgoing mail is delivered to your ISP's smarthost by an SMTP connection as usual. Doing it this way means that it doesn't matter whether you have a static or dynamic IP because that's invisible to an outsider: they see their mail going to and coming from to the ISP and nothing else.
I've been doing it this way for several years. Points, in order of incoming mail flow: - I prefer getmail to the more commonly recommended fetchmail because it has fewer bugs and doesn't forget to delete mail its fetched from the ISP's POP3 mailbox. The main operational difference is that, while fetchmail is a daemon which schedules its own POP3 sessions to fetch mail from the ISP's smarthost, getmail is run as a cron job with a 10-15 minute cycle. - Both getmail and fetchmail use a script as their mail delivery agent. The same script works with both programs, so swapping between them is easy. I filter incoming mail by calling spamc from the MDA script and pipe spamc's output through a locally written program. This pipes ham into postfix's sendmail for local delivery to my MTA and drops spam into a quarantine folder. - a daily cron job deletes quarantined mail after a week. - my house server runs Apache as well as Postfix, SA and the getmail and quarantine cleaning cron jobs. I wrote myself a PHP script for looking at quarantined mail. - I use Postfix as my MTA and back-end it with Dovecot to provide a POP3 service to the MUA on this 'ere laptop. - My MUA sends outbound mail to my Postfix MTA, which forwards it to my ISP's smarthost using SMTP. - Outbound mail follows this path so it will feed into my mail archive, which hoovers up all non-spam inbound and all outbound mail via an automatic BCC in Postfix and an overnight cron job which archives all the mail that gets BCCed to its mailbox. This provides me with a private, automatic whitelisting service: a personal SA plugin looks up the senders of inbound mail in the archive: if I've ever sent them mail, they get whitelisted. As Bill Cole said, this type of mail system is largely maintenance free once its set up and working correctly. Almost the only thing I need to do to it is to add an SA rule or two if a new form of spam comes along. All the mail handling programs (getmail, Postfix, Dovecot, Evolution [my MUA of choice]) are standard packages, so get updated automatically. The various cron jobs just sit in the background and do their stuff. I get a daily report on how things are going via logwatch, so its easy to keep an eye on how its all going, how much junk is in quarantine, etc. Martin