2

我正在 Rails 上开发一个应用程序,我需要知道是否可以编写代码,当用户打开从我的应用程序发送的电子邮件时通知我(需要跟踪此信息)?

我需要的主要数据是它是否已打开。

谢谢

4

2 回答 2

0

您可以这样做,但不能 100% 确定您总是会收到通知。
SMTP 有 2 个标准,它们是 DSN 和 MDN。两者实际上都是可选的,不能保证目标电子邮件收件人(您的用户)的电子邮件系统也会实施它们。

最简单的方法是插入"Return-Receipt-To:"(RRT)电子邮件标题。将一些地址作为标题的内容。现在,当用户打开包含此标头的电子邮件时,客户端电子邮件阅读器可能会提示您的用户是否发送回执。如果不遵守,电子邮件将发送到您指定的地址。在 Rails 中,它可能是这样的:

themailer < ActionMailer::Base
   def notify_read
     headers['Return-Receipt-To:'] = 'notifyread@mysite.com'
     mail(:to => 'users@somecompany.com')
   end
end

您可以只使用您监控的电子邮件地址并手动阅读它们,或者您也可以设置 rails 来阅读这些电子邮件。但不能保证您总是会得到确认。

此外,您可以检查每个电子邮件域,许多大型免费电子邮件提供商都有请求回执的专有方法。如果您添加".readnotify.com"到收件人电子邮件地址的末尾,您将收到回执。不过,您将不得不研究所有大的。例如:

user@yahoo.com.readnotify.com

希望有帮助

来源:http ://railsforum.com/viewtopic.php?pid=147997#p147997

于 2013-02-08T10:19:32.160 回答
0

实现这一点的一种常见方法是包含一个指向不可见图像文件的链接,该链接包含有关电子邮件的足够详细信息,以便您能够识别正在查看的电子邮件。

当邮件客户端请求图像时,您的服务器可以记录查看尝试。如果您使用第 3 方电子邮件提供商(例如 sendgrid、postageapp),那么有时他们会为您执行此操作并使用适当的事件 ping 您的服务器。我强烈怀疑这就是 readnotify 在幕后所做的(不久前有人不厌其烦地看这个

这并不完全准确,因为一些(很多?)用户在他们的邮件查看器中关闭了远程图像查看。

于 2013-02-08T10:33:27.470 回答