Verify Email Delivery?

Question:
Is it possible to check if an email is delivered properly?

Answer:
The Chilkat MailMan is an SMTP client. It connects to an SMTP server to initiate the delivery of email. Typically you would connect to your company’s or ISP’s SMTP server. If the email is to be sent elsewhere, the SMTP server relays the email to the remote SMTP server (or to some other intermediate mail server). The SMTP client can only report back whether the initial “handoff” is successful. There are cases where the initial “handoff” fails, and these would result in a failed status return by the mail-sending method call.

Here is a collection of blog posts related to this topic:

Requesting Read Receipts and Delivery Receipts
http://www.chilkatsoft.com/p/p_313.asp

Diagnosing SMTP Failures
http://www.chilkatsoft.com/p/p_245.asp

RFC 3461 SMTP DSN Extension
http://cknotes.com/?p=8

SMTP Protocol in a Nutshell
http://cknotes.com/?p=40

Is it Possible to Connect Directly to the Recipient’s SMTP Server?
http://www.chilkatsoft.com/p/p_325.asp

Checking TCP Connectivity
http://www.chilkatsoft.com/p/p_172.asp

Email Bounce Processing Examples
* When sending email, you may set the email address’s BounceAddress property to specify a mailbox where bounces (i.e. DSN’s) are to be sent. You may write a separate application to read that mailbox using Chilkat Email (or Chilkat IMAP) in conjunction with the Chilkat Bounce component to categorize emails as bounces or not bounces, get the type of bounce, and the original sender (if possible).
ASP: Bounced Email Handling
C#: Bounced Email Handling
C++: Bounced Email Handling
MFC: Bounced Email Handling
C: Bounced Email Handling
Delphi: Bounced Email Handling
Visual FoxPro: Bounced Email Handling
Java: Bounced Email Handling
Perl: Bounced Email Handling
PHP: Bounced Email Handling
Python: Bounced Email Handling
Ruby: Bounced Email Handling
VB.NET: Bounced Email Handling
Visual Basic: Bounced Email Handling
VBScript: Bounced Email Handling

Matching Bounce/DSN with Original Sent Email

Question:

Given that bounced email / DSN’s may not include the original headers, if I need to
uniquely identify that the specific email didn’t make it to the
recipient is there any way I can uniquely ID the email? I would use this
info to know when to resend the email.

Answer:
Sometimes you’ll receive bounces that conform to DSN (delivery status notification) standards, but many times the bounce notification will be an ad-hoc email the conforms to no standards. Often the only information available is the original sender’s email address, and sometimes not even that is available. The Chilkat Bounce component/library is good for parsing the hundreds of different types of ad-hoc bounce and other automated replies, and will classify the bounce as one of 14 types and will parse out the original sender’s email address, if available.

If you’ve determined the email is a bounce reply using Chilkat Bounce, you might then check to see if it’s a standard DSN. The Chilkat.Email.IsMultipartReport method can be called to determine if the email is a multipart/report, which is the content-type for DSN’s. You may parse a DSN as shown in these examples:

C# Parse DSN Email

VB6: Parse DSN Email