我有一个应用程序,当用户注册时,他们会收到一封确认电子邮件。
这是用户控制器创建操作:
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
UserMailer.registration_confirmation(@user).deliver
log_in(@user)
format.html { redirect_to @user, notice: "Welcome to Pholder, #{@user.name}!" }
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
正如您在@user.save 之后看到的,有一个邮件程序。但是,一个人刚刚告诉我他在尝试注册后在 heroku 上遇到了错误(“我们很抱歉,出了点问题”),所以我自己尝试了一下,也遇到了错误
2012-11-16T17:21:28+00:00 app[web.1]: Net::SMTPAuthenticationError (535-5.7.1 Please log in with your web browser and then try again. Learn more at
2012-11-16T17:21:28+00:00 app[web.1]: ):
在查看了我的代码后,我尝试创建另一个用户,但这次成功了。有谁知道为什么?我在另一篇文章中读到,这可能是因为如果有太多用户同时注册(因为发送了太多电子邮件),它会失败,但我认为当时没有人注册,因为没有多少人知道我的应用.
smtp 设置:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'pacific-ravine-3563.herokuapp.com',
:user_name => ENV["EMAIL"],
:password => ENV["PASSWORD"],
:authentication => "plain",
:enable_starttls_auto => true
}
config.action_mailer.default_url_options = { :host => 'pacific-ravine-3563.herokuapp.com' }