Как проверить, успешно ли отправлено письмо с помощью ActionMailer?

Я использую ActionMailer в Rails 3 для периодической отправки электронных писем. Мне нужно знать, правильно ли было отправлено электронное письмо (насколько это возможно).

  @lists.each do |list|
    email = Reminder.deadline_reminder(list)
    email.deliver
  end

Есть ли свойство объекта электронной почты (класс Mail::message из библиотеки Mail), которое сообщит мне, правильно ли прошла отправка (нет проблем с подключением, проблем с аутентификацией и т. д.)? Я просмотрел классы на Github, но ничего не смог понять.


person Daniel Situnayake    schedule 14.11.2010    source источник


Ответы (1)


Все зависит от того, что вы считаете успешным.

Вы можете проверить, отправил ли ваш код сообщение. Вы часто можете проверить журнал, чтобы увидеть, получил ли его узел пересылки почты и переместил ли его к месту назначения.

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

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

person the Tin Man    schedule 15.11.2010
comment
Хорошая идея. Вы можете отслеживать открытия, добавляя в электронное письмо очень маленькую графику. Когда они откроют письмо, оно будет загружено с вашего сервера, и вы будете знать, что они открыли ваше письмо. Так открываются треки MailChimp. Не работает, если изображения не включены. kb.mailchimp.com/article/how-open-tracking-works - person corbin; 12.06.2013
comment
Правильно, это не работает, если их почтовый клиент не отображает графику или пользователь получил указание не загружать изображения, например, многие мобильные и веб-клиенты. - person the Tin Man; 12.06.2013