Sometime last week I was complaining to Eric J. about how much the SMTP protocol sucks. My primary reason for this was because I was beginning to write an Email Address Validator Control for ASP.NET. Ok, there are a few out there, but I just figured that I'd write one on my own and save some money. The concept of such a control is real simple... someone enters in an email address, the validator will validate the following:
- Email RegEx
- DNS MX lookup to verify the domain
- Verify the user at the domain
Well, the first two are simple to do. The last is a bit tricky because of how the SMTP protocol was written. There should of been something in the protocol authenticating a user and a means of verifying whether or not a user exists at a domain name. Quite simple concepts if you just think about it. Of course, neither of these exist, otherwise we wouldn't all be getting the tons of spam that we all get daily. The first of these two simple ideas would allow for SMTP servers to be open when not connected to their network (ie. I can't send mail using OptOnline's SMTP server from a dailup to MSN). The second simple idea would also help in preventing spam... if a user didn't exist at a domain then the mail wouldn't be sent. Period. Now wouldn't that be nice? Of course I wouldn't of expected that the original SMTP protocol be this way back when it was written, but heck, it could have been added to over the years. To my delight (of sorts) CNET just wrote an article about the "end of SMTP" pointing out some the shortcomings of SMTP.