Использование 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'