我使用Yandex Connect(SMTP)作为从我的Rails 5 JSON API应用程序发送电子邮件的方法。
以下是设置:
Rails.application.configure do
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
address: 'smtp.yandex.com',
port: 25,
domain: ENV['MAIL_DOMAIN'],
user_name: ENV['MAIL_USER'],
password: ENV['MAIL_PASSWORD'],
authentication: 'plain',
enable_starttls_auto: true
}
end
我的config.action_mailer.default_url_options = { host: ENV['MAIL_DOMAIN'] }
application.rb
在具有正确凭据的heroku上,它可以正常工作。但是,当我尝试运行相同的配置localy并发送电子邮件时,我得到ArgumentError - SMTP-AUTH requested but missing secret phrase
。
可能出现什么问题
答案 0 :(得分:1)
1)确保环境变量确实存在,例如bundle exec rails console
,puts ENV.inspect
2)确保凭证正确
3)在您修改环境后重新启动开发服务器。这包括spring stop
。