Email open notification - ruby on rails

If I will send 100 email to the registered user and I want to know if users open email or not

How can I do this using Ruby on Rails?

19
задан Sander de Jong 9 March 2016 в 11:21
поделиться

3 ответа

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

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

26
ответ дан 30 November 2019 в 03:33
поделиться

Короткий ответ - нельзя. Немного более длинный ответ - Нельзя надежно.

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

9
ответ дан 30 November 2019 в 03:33
поделиться

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

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

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

2
ответ дан 30 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: