我正在使用Rails 4.0,想了解如何获取电子邮件跟踪信息。
也就是说,我想知道有多少用户打开了我的邮件以及何时打开,是否已删除或已读取。
简而言之,我想知道如何在成功交付后跟踪电子邮件相关信息。
也就是说,我想知道有多少用户打开了我的邮件以及何时打开,是否已删除或已读取。
简而言之,我想知道如何在成功交付后跟踪电子邮件相关信息。
@google_analytics_url = url
2. 我的CustomMailView将此链接添加到图像(像素图像)中:
<img src=<%= @google_analytics_url %> width=1 height=1 />
更多关于不同谷歌分析参数的一般信息请参见:
https://www.formget.com/email-tracking-google-analytics/
官方文档rails official docs提供了完整的示例:
http://guides.rubyonrails.org/action_mailer_basics.html
class UserMailer < ApplicationMailer
default from: 'notifications@example.com'
def welcome_email(user)
@user = user
@google_analytics_url = 'http://www.google-analytics.com/collect?v=1&tid=UA-****&cid=CustomerID&t=event&ec=open_email&ea=Event Action&el=Event Label&cs=Campaign Source&cm=Campaign Medium&cn=Campaign Name'
mail(to: @user.email, subject: 'Welcome to My Awesome Site')
end
end
查看 mail_view.html.erb 文件:
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Welcome to example.com, <%= @user.name %></h1>
<p>
You have successfully signed up to example.com,
your username is: <%= @user.login %>.<br>
</p>
<p>
To login to the site, just follow this link: <%= @url %>.
</p>
<p>Thanks for joining and have a great day!</p>
<img src=<%= @google_analytics_url %> width=1 height=1 />
</body>
</html>
如@max_pleaner所建议的那样,您可以使用该宝石或查看以下文章之一-https://myles.eftos.id.au/blog/2013/08/25/track-email-opens-using-a-pixel-tracker-from-rails/#.V7XSSbMvDDd
您试图嵌入的内容被称为信标图像或网络虫。
你可以在其中插入一个像素,并跟踪它已被下载的次数,就像一个图片一样。我无法写出确切的方法,因为我从未尝试过,但我相信可以这样做。
我曾经为此苦苦挣扎,现在终于找到了解决方案。
首先,你的邮件发送器应该像这样:
UserMailer
class UserMailer < ApplicationMailer
default from: 'aniket.tiw@gmail.com'
def send_mail(email,body ,subject,user)
@body = body
@user = user
mail(to: email, subject: subject)
end
end
routes.rb
Rails.application.routes.draw do
get '/trackemail/:id', to: 'users#track_email'
end
现在,在进入视图之前,您必须安装Localtunnel,以便每当有人打开电子邮件时,它会被重定向,因为Gmail不知道本地主机。
我已经附上了链接link,说明如何安装localtunnel。
正如您在我的视图中看到的那样,我还附加了一个随机字符串。我这样做是因为第一次该方法起作用,但然后Gmail缓存我们的记录。因此,每次URL都应该是新的,图像才会打开。您甚至可以通过给出样式来隐藏图像。
user_mailer/send_mail.html.erb
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body >
<h1>Hi </h1>
<p>
<%= @body %>
<% str = (0...8).map { (65 + rand(26)).chr }.join %>
<img src=<%="https://morwhnykzf.localtunnel.me/#{@user.id}?#{str} "%> class="profile" />
</p>
</body>
</html>
用户控制器
class UsersController < ApplicationController
def track_email
send_file("/home/aniketshivamtiwari/Desktop/track.jpg",:disposition => true,:type=> 'image/jpeg',:x_sendfile => true)
end
end