内部控制器:
def update
@user.update({approved: true})
UserMailer.send_approved_mail(@user)
redirect_to(root_url)
end
在 user_mailer.rb 里面
class UserMailer < Devise::Mailer
def send_approved_mail(user)
@resource = user
email_body = render "user_activated_mail"
if @resource.valid?
client = Postmark::ApiClient.new(ENV["POSTMARK_API_KEY"])
client.deliver(from: ENV["POSTMARK_SIGNATURE"],
to: @resource.email, subject: "User Activation information.",
tag: 'account-activated', :content_type => "text/html",
html_body: email_body)
end
end
end
在 rails 4.1.0 中,控制器中的上述方法被调用并正在发送电子邮件,但在 rails 4.2 中,控制器中的 mailer 方法没有被调用,但是当从 rails 控制台调用时它可以工作。我已经为邮戳 API 和配置文件进行了所有必要的配置。唯一的事情是在rails 4.1.0中,控制器内部的邮件程序被调用,但在rails 4.2中,当从rails控制台调用时,它不起作用。究竟是什么原因实在想不通。