I am using smtp to send email in asp.net
how can I confirm that the email is sent to the recepient when I use
smtp.Send(msg);
To send email to recepient and I am looking for a way to have a confirmation that the recipient received the email
I am using smtp to send email in asp.net
how can I confirm that the email is sent to the recepient when I use
smtp.Send(msg);
To send email to recepient and I am looking for a way to have a confirmation that the recipient received the email
2
Answers
If the call succeeds then the message was accepted by the remote server. This by no way means that the message reaches the recipient’s inbox. It only means the remote server accepted responsibility for the message. In theory, it will send a bounce if it fails. In most cases, servers silently drop messages they consider spam. If the server accepts relaying (which usually implies credentials) it can accept messages for non-existing recipients and bounce them later.
There is no way to know the final status of a message right after the sending transaction has completed.
RFC 3461 specifies a DSN method, which doesn’t seem to be supported by SmtpClient, which produces positive bounces, telling that the message was delivered. Not all servers support it. It doesn’t say whether the message was delivered in the spam folder or not.
You can also add a
Return-Receipt-To:
header field, which can some times result in a formal confirmation that the recipient opened or discarded the message.SMTP doesn’t include any universally available function to determine if an email has been successfully delivered, or read – even if accepted by a mail server, the email may be caught by a spam filter.
A hidden beacon could be used to verify if an email has actually been opened, but their use is discouraged and often thwarted by privacy-conscious email clients.