Уведомление об открытии электронной почты - ruby ​​on rails - PullRequest
19 голосов
/ 19 августа 2010

Если я отправлю 100 электронных писем зарегистрированному пользователю и хочу узнать, открывают ли пользователи электронную почту или нет

Как я могу сделать это, используя Ruby on Rails?

Ответы [ 3 ]

24 голосов
/ 19 августа 2010

Единственный способ сделать это, это использовать электронную почту 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) %>

Но учтите, что это не гарантирует, что пользователь читает электронную почту и загружает изображение, некоторые почтовые клиенты не загружают изображения, пока пользователь не захочет.И если он этого не сделает, вы ничего не можете с этим поделать.Также, если пользователь использует только текстовую почту, это тоже не сработает.

9 голосов
/ 19 августа 2010

Краткий ответ. Вы не можете. Чуть дольше ответь Вы не можете достоверно.

Используя что-то вроде VERP, вы можете автоматизировать обработку отказов, чтобы получить довольно хорошее представление о том, принял ли почтовый сервер на дальнем конце электронную почту. Но после этого все ставки сняты. Вы не можете точно сказать, что почтовый сервер сделал с ним (направьте его в папку нежелательной почты / спама, поместите в папку «Входящие», тихо бросьте его на пол / битовую корзину и т. Д.). Вы можете включить заголовки квитанций о прочтении в своей электронной почте, но это зависит от клиента (и такие люди, как я, их принимают / запрещают). Вы можете использовать веб-баг, например, настроить каждое электронное письмо с помощью HTML-файла, который извлекает удаленное изображение, с которым связан уникальный идентификатор, но, опять же, для конкретного клиента, большинство не будет загружать удаленные изображения. Поэтому, если электронная почта не приходит в норму, нет 100% надежного способа узнать, что происходит с электронной почтой после того, как она покидает ваш сервер.

2 голосов
/ 19 августа 2010

Я не очень знаком с ruby, но написал несколько приложений массовой рассылки.Вы можете использовать изображение веб-жука, чтобы получить приблизительный коэффициент открытия.По сути, это всего лишь одно пиксельное или прозрачное изображение с некоторой информацией об отслеживании:

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

Я создаю каталог trackingimage.gif с индексом, который читает и сохраняет параметры URL, а затем перемещаетк реальному изображению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...