如何知道我的电子邮件是否使用Asp.net接收和阅读

我需要知道如何查询已发送的电子邮件状态。
在Asp.net中是否有任何特殊类来实现此function?
如果不是,你知道这样做的方法吗?

如果您正在使用System.Net.Mail命名空间,则可以向电子邮件添加标头以请求已读回执:

 message.Headers.Add("Disposition-Notification-To", ""); 

然而:

  • 许多邮件客户端不支持它们
  • 用户可能没有启用它们
  • 发送已读回执是可选的; 他们可能只是说不

没有万无一失的方法可以知道电子邮件是否已被阅读,因为电子邮件是一种“发送和忘记”类型的服务。

有些邮件做的一件事就是在电子邮件中包含一个小的(1×1像素足够)唯一图像链接,链接回发件人的Web服务器。 如果访问图像,则电子邮件已打开。

请注意,这并不总是有效。 事实上,这就是为什么gmail和outlook有时会要求你“选择”在电子邮件中显示图像。

众所周知,没有确定的方法可以知道。 Sendgrid电子邮件发送http://sendgrid.com内置支持添加1px图像的建议。 它们还有一个API,可让您测试是否已打开电子邮件或是否已单击包含的链接。 同样的警告适用于上述。 但是,它至少可以让您检查已发送电子邮件的状态。 我们其中一个网站的97%的客户正在公开他们是否阅读过电子邮件。

您可以在此处查看电子邮件事件API http://docs.sendgrid.com/documentation/api/event-api/