Rails 3: Настройки SMTP для Google Apps / Heroku

Вот мои настройки smtp для Google Apps в setup_mail.rb.

  :address              => "smtp.gmail.com",  
  :port                 => 587,                 
  :domain               => 'mysite.co',  
  :user_name            => '[email protected]',      
  :password             => 'password',      
  :authentication       => 'plain',             
  :enable_starttls_auto => true

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

Как только это будет решено, возникнут ли у меня проблемы с его работой на Heroku?


Примечание: приведенное выше регистрирует предупреждение об устаревании:

DEPRECATION WARNING: Giving a hash to body is deprecated, please use instance va
riables instead. (called from process at C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gem
s/actionmailer-3.0.0/lib/action_mailer/old_api.rb:77)

person sscirrus    schedule 31.10.2010    source источник


Ответы (4)


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

person Syamantak    schedule 03.05.2011

в вашем пользовательском контроллере не забудьте добавить .deliver

UserMailer.registration_confirmation(@user).deliver

это то, что поставило меня в тупик

person Pete Brumm    schedule 21.11.2011

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

Если вы читаете это в ретроспективе, то, что я узнал: убедитесь, что ваш user_mailer Rails 3.0 имеет (или аналогичный):

mail(:to => "#{user.login} <#{user.email}>", :subject => "Registered" )
person sscirrus    schedule 03.11.2010

Я не использовал rails3, но помню, что читал отправленные электронные письма в разработке отправляются отправителю. Ваше предупреждение об устаревании связано с тем, что вы определяете переменные для шаблона электронной почты в предыдущем формате хэша. Rails 3 работает по-другому. По моему опыту, развертывание на heroku работает безупречно, но вам нужно будет определить множество записей.

person mark    schedule 31.10.2010
comment
Привет Марк. Не могли бы вы быть более конкретным? Как вы на самом деле исправить устаревание? Отправленные электронные письма перенаправляются отправителю только в среде разработки, если вы укажете перехватчик. - person sscirrus; 31.10.2010
comment
Кроме того, я обновил свои записи MX для Google Apps. У меня есть несколько новых электронных писем под моим доменным именем, которые работают правильно, когда я отправляю/отвечаю на электронные письма вручную - теперь вопрос в том, как мне заставить Rails также отправлять эти электронные письма :) - person sscirrus; 31.10.2010