Many of our clients use a custom application that we wrote to send email invitations to surveys. The application is a little rough around the edges, but it works well. We’ve made versions with Web interfaces, and other customizations for various clients. It’s what I’d call a semi-custom application. I frequently get calls or emails from clients who have received return notifications from some SMTP server to which the program has sent mail. Usually they’re wondering why my program is so stupid that it can’t figure out if an email address is valid.
Explaining the SMTP protocol and its nuances to the uninitiated is difficult. I’ve yet to come up with a simple explanation that non-technical people can grasp. They refuse to believe that it really is as simple as paper mail: you address the envelope and drop it in the mailbox. Somehow or another, the letter either gets to its intended recipient, or it comes back to you as undeliverable. Email works the same way. You tell your email program to deliver a message to xyzzy@xyzzy.com, and press the send key. Your email program contacts the SMTP server that you told it about (you did, really, when you configured your system for your ISP) and sends the mail. The SMTP server accepts the message; in effect saying “I’ll deliver it for you, and let you know if for some reason I can’t.” How it all works under the hood is irrelevant to the discussion.
If you know of a good introduction to SMTP for non-technical users to read, please point me at it.