ActionMailer ArgumentError - 已请求SMTP-AUTH但缺少密码短语

时间:2018-02-06 19:13:21

标签: smtp ruby-on-rails-5 actionmailer yandex

我使用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

可能出现什么问题

1 个答案:

答案 0 :(得分:1)

1)确保环境变量确实存在,例如bundle exec rails consoleputs ENV.inspect

2)确保凭证正确

3)在您修改环境后重新启动开发服务器。这包括spring stop