Решение проблемы с именем отправителя в ActionMailer

Письма, телеграммы...

Сегодня я хочу рассказать о проблеме с которой сталкивался несколько раз работая с ActionMailer в Ruby on Rails и отправляя письма через Gmail. Суть проблемы заключается в том что при попытке передать имя и адрес отправителя в поле FROM, SMTP сервер возвращает ошибку:

/usr/lib/ruby/1.8/net/smtp.rb:930:in `check_response': 555 5.5.2 Syntax error. 14sm2913621ewy.14 (Net::SMTPFatalError)
...

Проблема заключается в том что e-mail в данном случае передаётся в поле MAIL FROM которое в соответствии с RFC спецификацией должно принимать только e-mail адрес в треугольных скобках. Получается такая вот некорректная конструкция на которую ругается SMTP сервер:

MAIL FROM:<Don't reply <clo***ion@gmail.com>>

Но, есть другое поле которое называется FROM которое специально предназначено для e-mail-ов с именами. Чтобы ваш e-mail с именем попал в него нужно сделать две вещи:

  1. Присвоить заголовку RETURN-PATH e-mail адрес без имени
  2. Присвоить полю FROM e-mail адрес с именем

Получается такой вот код:

def weekly_report
  from          "Don't reply <#{clo***on@gmail.com}>"
  headers       "return-path" => "clo***on@gmail.com"
  recipients    "user@example.com"
  subject       "Weekly Report"
  body          "E-Mail Body"
end

Надеюсь эта информация окажется кому-то полезной т.к. сам потратил немало времени пытаясь найти в интернете её решение.

Тэги: ActionMailer
Будь всегда в курсе последних новостей блога подписавшись на новости
в формате RSS. Присоединяйся!
* * *

Комментарии

* * *

Добавить новый комментарий

Доступные BB теги

*

* (не будет опубликован)

(если есть)

  • Multi CAPTCHA Refresh2
  • *

1. Проверьте комментарий перед отправкой
2. Все комментарии проходят модерацию перед публикацией в блоге