Подтвердить что ты не робот

Открытое уведомление по электронной почте - рубин на рельсах

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

Как это сделать с помощью Ruby on Rails?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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

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