电子邮件中断的链接

时间:2016-06-16 06:25:53

标签: ruby-on-rails devise actionmailer sendgrid

我有一个rails应用程序,我正在使用设计进行身份验证。我注意到,当重置密码的电子邮件在生产中通过时,重置密码的链接会中断并重定向到我的根URL。

在开发过程中,它会将我带到登录页面,并显示一条Flash消息,指出我无法在没有有效令牌的情况下访问此页面,并且必须提供完整的URL。

虽然我已经定制了电子邮件的外观,但我正在使用设计方法来生成链接,即。 edit_password_url(@resource, reset_password_token: @token) %>

这应该理想地在开发环境中出现 http://localhost:3000/users/password/edit?reset_password_token=[GENERATED_TOKEN]

然而,从服务器日志中可以看出它如下: http://localhost:3000/users/password/edit?reset_pass= word_token=3DQaz7y_f63yR3MZmReUY5

分两行。在生产中我使用sendgrid,所以我看不到通过检查链接生成的URL。

我还注意到每个=符号都会转换为=3D

期待一些建议。如果我必须提供更多数据,请告诉我。

1 个答案:

答案 0 :(得分:0)

我确实找出了问题,因为事实证明它与传输编码无关。 在接收端,尽管内容传输编码,网址仍然可以正确解析。

但是,由于我是自动生成链接,因此生成链接并将其作为http链接发送。我正在使用CDN重定向https我在其中添加的页面规则以解决一些问题的所有流量,导致此http链接重定向到https并最终转到应用程序根。这就是造成这个问题的原因。

生成一个https的绝对网址是必需的。