繁体   English   中英

电子邮件打开通知 - ruby​​ on rails

[英]Email open notification - ruby on rails

如果我将向注册用户发送100封电子邮件,我想知道用户是否打开电子邮件

我怎么能用Ruby on Rails做到这一点?

唯一的方法是使用带有跟踪器图像的html电子邮件。 您需要在代码中包含用户特定的图像。

class TrackingController < ApplicationController
  def image
    # do something with params[:id]
    send_file "/path/to/an/image"
  end
end

添加以下路线:

# Rails 2
map.tracking_image "tracking_image/:id.gif", :controller => 'tracking', :action => image

# Rails 3
match 'products/:id', :to => 'tracking#image', :as => "tracking_image"

# Rails 4 (match without verb is deprecated)
get 'producsts/:id' => 'tracking#image', as: 'tracking_image'
# or
match 'producsts/:id' => 'tracking#image', as: 'tracking_image', via: :get

在您的电子邮件模板中,如下所示:

<%= image_tag tracking_image_url(@user.id) %>

但要注意,这不能保证用户阅读电子邮件并加载图像,一些电子邮件客户端不会加载图像,直到用户想要。 如果他不这样做,你就无能为力。 此外,如果用户仅使用文本邮件,则这也不起作用。

简短的回答,你不能。 稍微长一点的回答你不能可靠。

使用类似VERP的东西,您可以自动执行退回处理,以便在远端邮件服务器接受电子邮件时获得相当好的建议。 但之后所有的赌注都没有了。 你无法真正告诉电子邮件服务器用它做了什么,(将它路由到垃圾邮件/垃圾邮件文件夹,放入收件箱,静默地将它放在地板/位桶等等)。 您可以在电子邮件中启用读取收据标题,但这是特定于客户端的(像我这样的人吃/拒绝它们)。 您可以考虑使用Web错误,例如使用HTML文件自定义每个电子邮件,拉取远程图像,该图像具有与之关联的唯一ID,但同样是客户端特定的,大多数不会加载远程图像。 因此,除非电子邮件反弹,否则没有100%可靠的方式来告知电子邮件离开服务器后会发生什么。

我对ruby不太熟悉,但已经编写了多个群发邮件应用程序。 您可以使用webbug图像获得近似的开放率。 基本上它只是一个像素或透明图像,带有一些跟踪信息:

<img src="http://mysite/trackingimage.gif?email=x&customer=y">

我做的是创建一个名为trackingimage.gif的目录,其中包含一个索引,用于读取和存储url参数,然后重定位到真实图像。

暂无
暂无

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

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