Использование Amazon SES & Devise

Так что я хочу, чтобы устройство использовало Amazon для отправки электронных писем "Я забыл свой пароль" пользователю. Я выполнил все шаги по настройке устройства с помощью Gmail, а затем попытался настроить SES в качестве почтовой программы на production.rb. Я новичок в ruby ​​и уверен, что что-то неправильно сделал с моим синтаксисом или конфигурацией.

production.rb

    config.action_mailer.delivery_method = :smtp,
    config.action_mailer.smtp_settings = {
      :address => "email-smtp.us-west-2.amazonaws.com",
      :user_name =>  ENV['AWS_SMTP_USER'], # Your SMTP user here.
      :password => ENV['AWS_SMTP_PASSWORD'], # Your SMTP password here.
      :authentication => :login,
      :enable_starttls_auto => true
  }

Я сохранил и AWS_SMTP_USER & AWS_SMTP_PASSWORD в конфигурации, используя "$ Heroku Config"

Devise.rb

  config.mailer_sender = 'Admin@synapticecho.com'

Я не думаю, что мне чего-то не хватает, но я не нашел никого, кто пытался бы использовать Devise & SES в качестве почтовой программы. Я просто не уверен, какие еще части мне могут не хватать, и я не нашел документацию AWS настолько полезной для настройки SES для работы с Devise.

Я могу опубликовать проект GitHub, если это поможет.

2 ответа

В моем случае.

Я получил следующую ошибку.

  • Net::SMTPFatalError (554 Message rejected: Email address is not verified

но, как и вы. Я не знал, что ничего не пропустил.

попробуйте ниже настройки.

config.action_mailer.default_url_options = { host: Rails.application.secrets.HOST }
config.after_initialize do
  config.action_mailer.perform_deliveries    = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address:        Rails.application.secrets.ACTION_MAILER_ADDRESS,
    port:           Rails.application.secrets.ACTION_MAILER_PORT,
    domain:         Rails.application.secrets.ACTION_MAILER_DOMAIN,
    user_name:      Rails.application.secrets.ACTION_MAILER_USER_NAME,
    password:       Rails.application.secrets.ACTION_MAILER_PASSWORD,
    authentication: :login,
    ssl:            true,
    tls:            true,
    enable_starttls_auto: true
  }
end

Это работает, мой env. Эта точка config.after_initialize, но я не знаю зачем это нужно.

  • Rails 4.1.4
  • Разработать 3.2.4
  • AWS SES
  • В AWS EC2
  • Доменом подтвержденной электронной почты является gmail.com (я его поменяю)

Я исправил проблему, добавив следующую строку в production.rb.

ActionMailer:: Base.default: from => 'my.verified.email.address'

Другие вопросы по тегам