Archived Forum Post

Index of archived forum posts

Question:

Test Validity of Email Address?

Jan 19 '16 at 08:36

If the recipient's address (strEmailto ) does not exist, intSuccess returns 1 and I get a message 'undeliverable' in my OutLook

in essence, there is a safe way to test the accuracy of the address of the recipient, or to make sure that the email was really sent?


Answer

It's not possible to know if the email address at the final destination exists or not during the SMTP client/server "handoff".

An SMTP client, such as the Chilkat Email component or Outlook, is responsible for passing an email to an SMTP server. Typically, the client connects to his own SMTP server that acts as a relay to deliver email destined for a remote mail server. The "handoff" to your SMTP server is the 1st step in the mail delivery process. An SMTP client can only ensure that this handoff happens without error. After the handoff is complete, it is the SMTP server's job to relay the email to a remote SMTP server (or perhaps some intermediate server) to complete delivery.

There are some important things to understand:

  1. an SMTP server can only know about the valid email addresses for its own domain. For example, the SMTP server at chilkatsoft.com only knows about email addresses for chilkatsoft.com.

  2. Most SMTP servers will not explicitly indicate whether an email address is invalid. They will instead accept the email and then optionally send a non-delivery report. When an SMTP server explicitly indicates an email address is invalid, it helps spammers prune their lists of invalid email addresses. Also, if the email address is truly not valid, then sending a non-delivery report could result in "backscatter". See https://en.wikipedia.org/wiki/Backscatter_%28email%29

Here's what happens when your program sends email using Chilkat or any SMTP client.

  1. The SMTP client connects to his own SMTP server, authenticates, and hands off the email to the SMTP sever. Your SMTP server is acting as a "relay".

  2. The SMTP server says "OK, I got it. I'll deliver this for you..."

  3. The SMTP client is done here -- the mail has been dropped in the mailbox. He can only hope it gets delivered.

  4. The SMTP server (behind the scenes and after it has finished talking with the SMTP client) now sets about sending the email on it's way...

I'll leave it at that, because at this point the client is finished. If the email address is valid, it should get delivered. If it was not valid, there is only a possibility that a non-delivery report might be sent back to the sender -- but you can't count on it. The SMTP server at the final destination might not even indicate that the email address is invalid.