Не удается заставить Mandrill отправлять электронные письма из приложения Rails
Я пытаюсь отправить электронные письма в приложение Rails. Он работает, если я использую Gmail, но он не работает, если я использую Mandrill. Я получаю эту ошибку таймаута с Mandrill. Не уверен, что я делаю неправильно. С Gmail и Mandrill я устанавливаю имя пользователя и пароль /api _key, используя переменные среды. Единственная разница между двумя настройками - это то, что вы видите ниже. Есть идеи?
Timeout::Error in RegistrationsController#create
execution expired
Rails.root: /Users/michaeljohnmitchell/Sites/pre
Application Trace | Framework Trace | Full Trace
app/models/user.rb:38:in `send_welcome_email'
Mandrill Не работает
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 25,
:user_name => ENV["MANDRILL_USERNAME"],
:password => ENV["MANDRILL_API_KEY"]
}
Работа в Gmail
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
Ответы
Ответ 1
использовать порт 587 для мандрилла, так же, как и я:)
это потому, что порт 25 отправляет простой текст, а порт 587 отправляет письма с кодировкой SSL (что, я думаю, является идеей всего мандрилла).
Я не знаю, почему они установили его в порт 25 в своих примерах.
Ответ 2
Вот несколько вещей, которые вы можете попробовать на основе предоставленной вами информации:
-
убедитесь, что правильная информация находится в каждом из ваших файлов среды (production.rb и development.rb)
-
попробуйте hardcoding имя пользователя и пароль для mandrill в отличие от использования переменных окружения (только для тестирования)