1

我正在尝试通过运行 Rails 4.2 的 Heroku 上的 Sendgrid 获得“设计可确认”电子邮件确认

我使用 Devise Confirmable 和 Sendgrid 选项设置了rails- devise-pundit 入门应用程序。

在开发中运行 Ubuntu 14.04 我只需要设置环境变量SENDGRID_USERNAMESENDGRID_PASSWORD环境变量,一切都在开发中完美运行。注册会发送一封电子邮件,单击收件箱中的链接会将我重定向到本地计算机上运行的应用程序,并按预期注册。

我将完全相同的应用程序部署到 Heroku,在这里我使用 heroku config 设置了 3 个环境变量 SENDGRID_DOMAIN(我的 heroku 应用程序的 url)

SENDGRID_PASSWORD(私人的)

SENDGRID_USERNAME(私人的)

我得到同样的闪光,说“确认链接已发送”。

heroku log揭示 Devise::Mailer#confirmation_instructions: processed outbound mail in 461.2ms

一切似乎都很完美,除了当应用程序在 Heroku 上运行时电子邮件永远不会到达,但在我的开发机器上运行时它会。

切换到 Mandrill 并使用 Mandrill 重现完全相同的场景。

我在任何地方都看不到任何错误消息,并且在滚动日志时看不到任何其他问题,我该如何解决这个问题?

4

1 回答 1

2

我没有找到任何错误消息来帮助指出这一点,但问题出DOMAIN_NAME在 Heroku 上设置的环境变量上。

我不小心https://在域名前加上了,所以我的heroku config透露了DOMAIN_NAME: https://example.com. 删除https://并将环境变量设置为example.com使用 Sendgrid 或 Mandrill 时问题消失并且确认电子邮件按预期工作。

于 2015-01-13T20:23:58.787 回答