MessagesController中的Net :: SMTPFatalError #create - 550无法从指定地址接收:不允许未经身份验证的发件人

时间:2015-03-19 15:38:31

标签: ruby-on-rails git heroku sendgrid

我有一个使用Devise,Heroku和Sendgrid的rails 4.1.8 app。发送电子邮件是应用功能的一部分。我在笔记本电脑上开发的所有内容都能完美地构建应用程序。电子邮件正在发送和接收......一切都很好。

我git克隆了桌面上的repo,我收到了上述错误。

我使用Figaro gem设置了所有的ENV变量。当我在我的开发笔记本电脑上运行heroku config时,会出现所有正确的值和变量。

这是我的config/initializers/setup_mail.rb文件:

if Rails.env.development? || Rails.env.production?
  ActionMailer::Base.delivery_method = :smtp
  ActionMailer::Base.smtp_settings = {
    address:        'smtp.sendgrid.net',
    port:           '587',
    authentication: :plain,
    user_name:      ENV['SENDGRID_USERNAME'],
    password:       ENV['SENDGRID_PASSWORD'],
    domain:         'heroku.com',
    enable_starttls_auto: true
  }
end

我正在使用Figaro gem,并在我的开发笔记本电脑上创建了一个config/application.yml文件,其中包含我的安全ENV变量。由于此文件位于.gitignore列表中,我还在台式计算机(第二台计算机)中创建了一个config/application.yml文件,如下所示:

SENDGRID_USERNAME:  <%= ENV["SENDGRID_USERNAME"] %>
SENDGRID_PASSWORD:  <%= ENV["SENDGRID_PASSWORD"] %>

SECRET_KEY_BASE:    <%= ENV["SECRET_KEY_BASE"] %>

DEVISE_SECRET_KEY:  <%= ENV["DEVISE_SECRET_KEY"] %>

同样,在我的开发笔记本电脑上,一切都在开发中完美运行,但在我的第二台电脑上,我收到了这个错误:

Net::SMTPFatalError in MessagesController#create
550 Cannot receive from specified address <support@******.com>: Unauthenticated senders not allowed

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用SendGrid Gem

Unauthenticated senders not allowed明确表示您正在连接到SendGrid,但在发送邮件之前没有尝试发出AUTH LOGIN命令。我看到你定义了authentication,但有些东西使它不能实际启用。