我正在构建一个具有帐户激活功能的网络应用。我正在关注Michael Hartl ROR教程,我没有收到任何帐户激活电子邮件到我的收件箱。我试图在线搜索如何验证是否发送了电子邮件。就像应该有一个我们配置的SMTP服务器来发送电子邮件吗?没有找到任何有用的东西。有人可以帮忙吗?
我的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: "noreply@example.com"
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 }
答案 0 :(得分:2)
和Sandeep,
继续阅读教程。我使用旧版Michael的教程来学习rails,但是当我想发送确认电子邮件时又回来了。我不认为您应该发送实际的电子邮件(至少不是在开发模式下),rails 4.1.x具有您可以查看的邮件预览,我认为这是教程所涵盖的内容。
当您进入生产环境时,您需要设置外部服务器以发送实际的电子邮件,但这将在您的production.rb文件中。如果您只是在学习,那么您有很多选择,包括设置一个gmail帐户(与您的私人帐户分开),每天发送有限数量的电子邮件。
以下是我认为您应该注意的链接: listing 10.15
我对迈克尔·哈特尔的教程的经验是,它几乎是完美无缺的,你可能在你的特定系统设置上有一两个问题,但我认为在很大程度上我遇到的任何问题与我没有正确地遵循文本。
希望这有帮助,祝你好运!
答案 1 :(得分:1)
将其添加到您的config/environments/development.rb
文件
config.action_mailer.raise_delivery_errors = true
如果电子邮件递送出错,您会收到通知。
除此之外,您可以在users
表格中添加字段,例如activation_sent_at
,并在发送电子邮件时填充该字段,以便日后再参考。
答案 2 :(得分:1)
从第491页的底部阅读:“请注意,您将不在开发环境中收到实际的电子邮件,但它会显示在您的服务器日志中。第10.3节讨论了如何发送电子邮件在生产环境中真实存在。“
因此,如果您想明确地遵循文本,我会在第10.3节中查看好东西。希望有所帮助!