如何知道我的电子邮件是否使用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/