I didn’t really want to blog about this, but it’s such a well-known piece of information I’d never heard of. Most of this blog post is for my own records but if it’s useful to you too that’s great.
Having been a desktop user of Microsoft Exchange, which uses nonstandard proprietary methods to communicate with Outlook I’d never run into the issue of not being able to send out mail.
Using an external IMAP mail server setup to receive on TCP port 143 and send on TCP port 25 works great at the office, no problem. First time you take your new laptop home, mail will not send with the usual setup
SMTP Port options
The Simple Mail Transfer Protocol (SMTP) allows mail server administrators to receive email on TCP port 25. Traditionally TCP port 25 was used for all email processing, submission and server-to-server mail transfers.
The Internet Engineering Task Force (IETF) published RFC 2476 http://tools.ietf.org/html/rfc2476 in December 1998. In section 3.1 Submission Identification, TCP port 587 was reserved for the initial submission of email messages from a client to an email server.
The document goes on to say that you may still allow an email server to receive email submissions on port 25. In practice a lot of email servers will accept submissions on both ports 25 and 587.
How clients should really send mail
Due to the rise in unsolicited email (SPAM) a lot of ISPs will block port 25 unless you specifically ask for it if you are running your own mail server and take responsibility for not allowing SPAM to be routed through your email server.
My issue came when I was at home as my ISP does block port 25 so I could not send email, but when I was on the WiFi at a friend’s house whose ISP obviously does not block port 25 my outbox suddenly emptied? Back at my house altering my mail client settings to submit email to the company email service on port 587 had me replying to co-workers once again.
From researching this point the recommendation is for all end user email software configurations to use port 587 as the default and leave port 25 for the server administrators to worry about.