如何验证是否在Ruby on Rails Web应用程序中发送帐户激活电子邮件
我正在构建一个具有帐户激活功能的Web应用程序。我遵循Michael Hartl ROR教程,我没有收到任何帐户激活邮件到我的收件箱。我试图在网上搜索如何验证是否发送了一封电子邮件。就像应该有一个我们配置为发送电子邮件的SMTP服务器?没有找到有用的东西。有人可以帮忙吗?如何验证是否在Ruby on Rails Web应用程序中发送帐户激活电子邮件
我account_activations_controller.rb
class AccountActivationsController < ApplicationController
def edit
user = User.find_by(email: params[:email])
if user && !user.activated? && user.authenticated?(:activation, params[:id])
user.activate
log_in user
flash[:success] = "Account activated!"
redirect_to user
else
flash[:danger] = "Invalid activation link"
redirect_to root_url
end
end
end
User_mailer.rb
class UserMailer < ApplicationMailer
def account_activation(user)
@user = user
mail to: user.email, subject: "Account activation"
end
end
application_mailer.rb
class ApplicationMailer < ActionMailer::Base
default from: "[email protected]"
layout 'mailer'
end
development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :test
host = 'localhost:3000'
config.action_mailer.default_url_options = { :host=> host }
桑迪普,
请继续阅读本教程。我使用了老版本的Michael的教程来学习rails,但是当我想发送确认邮件时又回来了。我认为你不应该期望发送真正的电子邮件(至少不是在开发模式下),Rails 4.1.x有邮件预览,你可以查看,我认为这是教程涵盖的内容。
当您到达生产环境时,您需要设置一个外部服务器来发送实际的电子邮件,但这将位于production.rb文件中。如果你只是在学习,那么你有很多选择,包括设置一个Gmail帐户(与你的私人帐户分开),每天发送有限数量的电子邮件。
这里是我想你应该看看链接: listing 10.15
我与迈克尔·哈特尔的教程经验是,它几乎是完美无瑕的,你可能有特定的系统设置问题或两个,但我认为在大多数情况下,我所遇到的任何问题都与我无关,没有正确遵循文本。
希望这个帮助,祝你好运!
添加到您的config/environments/development.rb
文件
config.action_mailer.raise_delivery_errors = true
所以你收到此通知,如果有电子邮件递送错误。
除此之外,您可以添加一个字段到如activation_sent_at
这样的users
表中,并在发送电子邮件时填充它,以便稍后参考。
我已经将config.action_mailer.raise_delivery_errors设置为true。如何/我在哪里得到准确的通知?在development.log中 – Sandeep 2015-03-13 14:55:34
我在我的日志中看到邮件已发送。但我没有在我的收件箱中, – Sandeep 2015-03-13 15:00:06
这样,如果在发送邮件时代码出现问题,它将引发错误。我强烈建议你阅读[documentation](http://guides.rubyonrails.org/action_mailer_basics.html)。 – DevMarwen 2015-03-13 18:20:53
从491页的底部写着:“请注意,您将不在开发环境中收到实际的电子邮件,但它会在你的服务器日志显示10.3节讨论了如何发送电子邮件真正的生产环境。”所以如果你想明确地跟随文本,我会在第10.3节中检查好东西。希望有所帮助!
你需要激活帐号或配置发送电子邮件? – 2015-03-13 14:45:33
您应该添加一些关于您如何发送电子邮件的详细信息,而不是假设每个人都熟悉教程。任何电子邮件发送方法都需要您执行一些配置才能使其工作。你做到了吗? – 2015-03-13 14:56:21
@MaxWilliams对不起,我已经更新了我的配置详细问题 – Sandeep 2015-03-13 15:13:51