我正在尝试使用rails runner CLI命令发送邮件,如下所示:
rails runner -e development ReminderMailer.send_mail
app / mailers / reminder_mailer.rb:
class ReminderMailer < ActionMailer::Base
default from: "other_email@gmail.com"
def send_mail()
@message = "hello world!"
@foo = mail(to: "my_email@gmail.com", subject: "Reminder")
puts @foo.to_s
puts "Everything worked"
end
end
我的推文被打印到控制台显示“一切正常”,但邮件没有被发送。我的config / environments / development.rb文件中有config.action_mailer.raise_delivery_errors = true
,当我在我的应用程序中的控制器中运行send_mail()
函数时,它可以工作,并且邮件已经发送。
它只能在命令提示符下起作用。为什么会这样?
感谢。
答案 0 :(得分:2)
您必须在邮件对象上调用deliver
才能发送邮件。尝试将行更改为
@foo = mail(to: "my_email@gmail.com", subject: "Reminder").deliver
虽然它是如何从您的控制器工作有点令人困惑。更不用说,他如何在课堂上成功调用实例方法?谁能开导我?