Heroku 上的 SendGrid 失败

JD *_*cks 7 ruby-on-rails ruby-on-rails-3.2

我为我的 heroku 应用程序设置了发送网格启动器。

我把它放在我的 config/environment.rb 中:

ActionMailer::Base.smtp_settings = {
  :user_name => ENV["SENDGRID_USERNAME"],
  :password => ENV["SENDGRID_PASSWORD"],
  :domain => "my-sites-domain.com",
  :address => "smtp.sendgrid.net",
  :port => 587,
  :authentication => :plain,
  :enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)

我创建了这个类模型/notifier.rb:

class Notifier < ActionMailer::Base

  def notify()
    mail( 
      :to => "my-email@gmail.com",
      :subject => "New Website Contact",
      :body => "body",
      :message => "message",
      :from => "website@my-sites-domain.com"
    )
  end

end
Run Code Online (Sandbox Code Playgroud)

我把它放在另一个控制器中发送电子邮件:

def contact
  Notifier.notify().deliver
  redirect_to("/", :notice => "We Have Received Your Request And Will Contact You Soon.")
end
Run Code Online (Sandbox Code Playgroud)

当我部署并尝试发送电子邮件时,我收到此错误:

Net::SMTPAuthenticationError (535 Authentication failed: Bad username / password

我已经完全设置发送网格,它说我准备好发送电子邮件。

我还跑去heroku config --long获取实际的密码和用户名并对它们进行硬编码,这仍然给了我同样的错误。

Bab*_*ler 5

RoR + SendGrid + Heroku:

我遇到了类似的问题,我一直收到此错误 Net::SMTPAuthenticationError (535 Authentication failed: Bad username / password when I试图发送电子邮件。

我试过

  • 我在 sendgrid 上注册的用户名,以及
  • 也是生成的一个 heroku(当我委托插件时)。

答案很简单。

不要使用任何用户名。这是简单的文字'apikey',密码使用从仪表板获得的生成的 API 密钥。

更多在这里# https://support.sendgrid.com/hc/en-us

我的 SMTP 用户名和密码是什么?

我们建议您使用“apikey”作为您的 SMTP 用户名,并创建一个 API 密钥用于您的密码。欲了解更多信息,请点击此处。 https://sendgrid.com/docs/for-developers/sending-email/integrating-with-the-smtp-api/


JD *_*cks 3

我曾尝试使用以下命令设置密码:

heroku config:add SENDGRID_PASSWORD=my-new-password
Run Code Online (Sandbox Code Playgroud)

但事实证明,这只改变了 heroku 存储为你的密码的内容,它实际上并没有改变你的密码。执行此操作后,您也无法找回密码。

我所要做的就是删除并重新添加 sendgrid 插件。