Preface
It’s 4:45 p.m. on a Friday afternoon, and you’re looking forward to going home early for a change. All of a sudden the telephone rings. It’s one of your users, unable to connect to the email server, yet again. Worse, he has to send a report to his boss before he can go home, which means that you’ve got to get the problem sorted out before you can go home.
But before you can fix anything, you’ve got to know what the problem is exactly. Is the user providing the wrong username or password? Is the user running an old email client that’s incompatible with some new features on your brand-new server? Maybe the user’s mailbox is locked by another process? Or are there basic network-connectivity problems keeping the computers from even being able to communicate?
Unfortunately, the unprecedented success and wide-scale adoption of Internet protocols and application services has resulted in an equally unprecedented number of complexities. And although there is a wealth of literature and documentation on how to implement a specific vendor’s product, rarely can you find detailed information on how the underlying protocols used by those products are implemented. There’s likely to be reams of documentation on the nifty email filters, but not a word will be printed on which POP3 or SMTP commands are supported. This makes troubleshooting difficult, to say the least. Worse, when vendors start pointing fingers at each other, you’re stuck trying to figure out the problem on your own.
The point ...