我正在使用rails 4.0,我想知道如何获取电子邮件跟踪。
我的意思是我想知道有多少用户打开我的电子邮件以及他们何时打开电子邮件,如果已删除,是否已被删除。
简而言之,我想知道如何在成功交付电子邮件后跟踪这些信息。
答案 0 :(得分:1)
正如@max_pleaner建议的那样,您可以使用该宝石或浏览此帖之一 - https://myles.eftos.id.au/blog/2013/08/25/track-email-opens-using-a-pixel-tracker-from-rails/#.V7XSSbMvDDd
您尝试嵌入的内容称为信标图像或网络错误
答案 1 :(得分:1)
您可以在其中插入一个像素并跟踪其下载次数。就像一个图像。我无法写出确切的方式,因为我从未尝试过,但我确信它可以这样做。
答案 2 :(得分:1)
我将举例说明我是如何实现此功能的:
CustomMailer
课程会生成类似于以下内容的Google跟踪网址: @google_analytics_url = url
我的CustomMailView
将此链接添加到图片(像素图片)
<img src=<%= @google_analytics_url %> width=1 height=1 />
More general info about different google analytics parameters
完整示例 rails official docs:
邮件程序:
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>
答案 3 :(得分:0)
我一直在努力解决这个问题。
首先,您的邮件将如下所示
<强> 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不知道localhost
我已附加链接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>
<强> users_controller 强>
class UsersController < ApplicationController
def track_email
send_file("/home/aniketshivamtiwari/Desktop/track.jpg",:disposition => true,:type=> 'image/jpeg',:x_sendfile => true)
end
end