Подтвердить что ты не робот

Не удается заставить 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"]
}
4b9b3361

Ответ 1

использовать порт 587 для мандрилла, так же, как и я:)

это потому, что порт 25 отправляет простой текст, а порт 587 отправляет письма с кодировкой SSL (что, я думаю, является идеей всего мандрилла).

Я не знаю, почему они установили его в порт 25 в своих примерах.

Ответ 2

Вот несколько вещей, которые вы можете попробовать на основе предоставленной вами информации:

  • убедитесь, что правильная информация находится в каждом из ваших файлов среды (production.rb и development.rb)

  • попробуйте hardcoding имя пользователя и пароль для mandrill в отличие от использования переменных окружения (только для тестирования)