views:

41

answers:

2

I am sending a mail using SMTP server in C# from my application. Whether the mail is delivered or not to the recipient, i need the response to our application. How it can be done using C#???

+2  A: 

You can not find out whether an email has been delivered, there is no mechanism for this in smtp. The best you can do is know whether the email has been sent successfully, which (presuming you are using System.Net.Mail.SmtpClient) you can tell by the fact that that the Send method throws an exception.

Spammers try to get around this limitation by using HTML mail and putting a link to an image on their server with a unique URL. IF this URL gets hit then you know someone has opened then email. This is somewhat frowned upon and highly unreliable as most email applications block linked images by default.

Ben Robinson
But this can be used to determine whether somebody read the mail. Most users will accept images from mails they trust (or expected). You might miss some users but I think this will give you quite a large success percentage.
Gertjan
You make an unsubstantiated assumption i.e. Most users will accept images from mails they trust. Will they? How do you know? Have you done some research or is there existing research that backs up your statment? Or are you just making it up? Secondly you are wrong it cannot be used to determine whether somebody read the mail. If you get a result then you know that the mail has been read, if you get no result you have no idea whether the mail has been read. So it is unreliable.
Ben Robinson
+2  A: 

We've used to have an application that allowed us to keep track of opened email. http://www.codeproject.com/KB/aspnet/etrack.aspx

But!!! This won't work all the time, not everyone is allowing images to be opened within an email.

Also the problem is that you only get a message after the mail has been read. Otherweise there is no way to track this.

gl

Sem Dendoncker