【发布时间】:2012-11-21 10:17:47
【问题描述】:
我正在关注这个 railscast 以熟悉 Rails 3 中的 ActionMailer,但我没有运气让电子邮件送达。
我认为我的问题可能与我的 setup_mail.rb 文件有关,有人可以在这里发现问题吗?我正在尝试从我的 gmail 帐户 jbdyno@gmail.com 发送电子邮件
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "jbdyno",
:password => "I PUT MY PASSWORD HERE",
:authentication => "plain",
:enable_starttls_auto => true
}
其他文件
user_mailer.rb
class UserMailer < ActionMailer::Base
default from: "jbdyno@gmail.com"
def registration_confirmation(user)
mail(:to => user.email, :subject => "Registered")
end
end
registration_confirmation.text.erb
Thanks for registering!
users_controller.rb
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
UserMailer.registration_confirmation(@user).deliver
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: "new" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
谢谢!!!
【问题讨论】:
-
你所做的第一眼看起来不错。您的日志中是否收到任何交付错误或任何提示可能发生的事情?
-
您是否在尝试发送电子邮件的环境中设置了
config.action_mailer.delivery_method = :smtp? (请参阅 Rails 指南 on Actionmailer 以及 gmail 的特定设置)。 -
附注:为了让电子邮件在开发中显示,有一个很棒的宝石,letter_opener,作者 Ryan Bates,RailsCasts 的创建者。
-
我已将“config.action_mailer.delivery_method = :smtp”添加到我的 config/environments/development.rb 文件中,但没有成功。我没有收到任何错误,新用户正在添加到数据库中,只是没有电子邮件。
-
您应该在您的环境配置中设置
config.action_mailer.raise_delivery_errors = true以查看是否会在日志中显示错误。
标签: ruby-on-rails email actionmailer