3

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

4

3 回答 3

8

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

message.Headers.Add("Disposition-Notification-To", "<address@yourdomain.com>");

然而:

  • 许多邮件客户端不支持它们
  • 用户可能没有启用它们
  • 发送已读回执是可选的;他们可能会简单地说不
于 2012-10-13T18:02:55.360 回答
7

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

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

请注意,这也并不总是有效。事实上,这就是 gmail 和 Outlook 有时要求您“选择加入”以在电子邮件中显示图像的原因。

于 2012-10-13T18:02:41.357 回答
2

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

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

于 2012-10-13T19:39:17.917 回答