SMTP port 25 being blocked by my ISP?

Argh. I just discovered that all my out-going email (and my wifes) from the past several days was not delivered. Debugging the issue took a bit of patience, here’s the summary.

All outgoing mail in my home network is relayed to my hosting provider, Dreamhost.com. I use exim4 as the mail-transfer agent, configured via the remote_smtp_smarthost option. It’s been working just fine that way for years…

Well, it looks like my ISP (Comcast) recently decided to start blocking SMTP (port 25) traffic, so all of a sudden, my home network can no longer talk to the SMTP server at Dreamhost.com. Unfortunately, I did not find that out for several days, after Kim and I both received a bunch of “Mail delivery failed messages” like this:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  somebody@yahoo.com
    retry time not reached for any host after a long failure period

After a bit of googling and experimenting with some different exim4 config options, I found this solution, suggesting that SMTP traffic should be sent on an alternate port that Dreamhost set up, apparently for exactly this purpose.

I’m actually not using the ‘split’ config file option for exim4, so I added the port=587 line to my exim4.conf.template instead. Email finally seems to be working again…