【问题标题】:Rails Tutorial, Hartl - ch. 10 - password/activate - Email link not redirecting to Heroku SiteRails 教程,Hartl - ch。 10 - 密码/激活 - 电子邮件链接未重定向到 Heroku 站点
【发布时间】:2015-03-03 04:52:03
【问题描述】:

密码重置和帐户激活中发送的链接正在电子邮件中发送,但是当我单击它们时,它们没有被重定向到我的 Heroku 应用程序,并且浏览器卡在“about:blank”。我错过了什么吗?它们看起来像这样:

<a href="https://u1655481.ct.sendgrid.net/wf/click?upn=mvuowIo3LtfxyVBtmnV5znO-2BvLApX4OWlh043PlY34nTdRmVM6vveMB03kyw9RkDUEvA28BSK-2BUBSWODF5yWFrC-2BNt0QPl2osMcVH1xzWtqraK-2BhdDaKAPwzziqS4B54pYcNarDcDTbKmyaLj-2BTSmnoiNl2BT8VqnMMrP7p8su4-3D_MQpxKXFxFonjeh1cARHVt6njcLV6H54PXEoHxOAloIou4oLyvkm9uLyulhz86uohdzxbBJHb-2Bu9ZUCPw-2FkxT7fW8mZO5dW2jHztjZZckPwUqZd9lZaxI8eitFNUyzb6GNUFVejIw76kkAOqYCQ5M4cZXTVJClAoWekh6xUxZ9NUOMK-2B-2Fx5D-2BfOqUmHW462oyh61psTTWPiu0GRg2HpWs0NezfSCN6Kh938A8OJLHBUQ-3D" target="_blank" class="">Reset password</a>

这是我的 app/views/user_mailer/password_reset.html.erb

<h1>Password reset</h1>

<p>To reset your password click the link below:</p>

<%= link_to "Reset password", edit_password_reset_url(@user.reset_token,
                                                  email: @user.email) %>

<p>This link will expire in two hours.</p>

<p>
If you did not request your password to be reset, please ignore this email and
your password will stay as it is.
</p>

【问题讨论】:

  • 这可能是 SendGrid,而不是编程问题。您是否尝试过直接在浏览器中使用该链接?如果它不起作用,那么问题出在 SendGrid 上。如果它确实有效,则可能是您的电子邮件客户端的格式问题。
  • 在我更改了一些设置后,它看起来现在可以工作了,但是 SendGrid 非常慢,比如 20 分钟发送一封电子邮件。这是因为我使用的是免费版吗?
  • @lluis 你做了什么改变?我想我有同样的问题

标签: ruby-on-rails railstutorial.org sendgrid


【解决方案1】:

看起来您传递给 SendGrid 的 URL 是 http://&lt;your+heroku+app&gt;.herokuapp.com/password_resets/...,因此您需要确保指定应用的名称,而不是 http://&lt;your+heroku+app&gt;。如果您使用 SMTP,请检查您的 config.action_mailer.default_url_options(在 config/production.rb 中)是否正确设置:

config.action_mailer.default_url_options = { :host => 'http://appname.herokuapp.com' }

【讨论】:

  • 我遇到了与 sendgrid 相同的问题,您的回答帮助我快速解决了问题。
【解决方案2】:

犯了同样的错误,当我意识到解决方案时感觉好笑:

  1. 检查你的config/environments/production.rbListing 10.56

  2. 用你的APP名称更新host = '&lt;your+heroku+app&gt;.herokuapp.com'(在我的例子中是host = 'twitterdave.herokuapp.com'

如果有帮助请告诉我

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2015-10-21
    • 1970-01-01
    • 2011-02-14
    • 2016-08-17
    相关资源
    最近更新 更多