繁体   English   中英

如何知道C#中已发送电子邮件的不同状态

[英]how to know the different status of sended email in c#

我正在用c#创建一个应用程序。 我必须知道如何知道已发送电子邮件的状态。状态可能是。

4. Track sent emails to determine if they were:
4.1 delivered
4.2 opened
4.3 recipient opt-out
4.4 bounced (with the reason for the bounce)
4.5 time/date sent
4.6 which links in the email were clicked (and time/date they were clicked)
4.7 IP address, if user clicked any links in the email  

我是否应该使用任何API或Dll或其他方法。请提供帮助。我们将非常感谢您的帮助。

如果您对应用程序进行编程以通过托管的SMTP服务器(例如http://www.sendgrid.comhttp://www.ultrasmtp.com)发送邮件,则可以访问已发送邮件的传递状态。

没有简单的方法可以做您想要的。 实际上,此状态可以由您的SMTP服务器本身进行跟踪,并且如果您使用的是某些第三方SMTP服务器(例如GMail或任何公司服务器),那么恐怕如果不使用经过身份验证的客户端,它们将无法使您访问这些信息。

在C#程序中,如果SmtpClient.Send()方法返回true,则可以假定邮件已传递到SMTP服务器。 如果万一发送失败,您应该收到一封邮件到出站邮件ID的收件箱。 如果要使出站邮件显示在发件箱中,则应相应地配置IMAP / POP3配置。

据我所知,没有可用的API或DLL以您想要的确切形式提供。 您可以尝试其他方式,例如从服务器跟踪邮件正文中的哈希或嵌入式图像。 但这不是可靠的方法,因为大多数现代消息传递服务对此都有相应的对策。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM