Rails跑步者不发送邮件

时间:2013-11-21 09:24:45

标签: ruby-on-rails ruby-on-rails-3

我正在尝试使用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()函数时,它可以工作,并且邮件已经发送。

它只能在命令提示符下起作用。为什么会这样?

感谢。

1 个答案:

答案 0 :(得分:2)

您必须在邮件对象上调用deliver才能发送邮件。尝试将行更改为

@foo = mail(to: "my_email@gmail.com", subject: "Reminder").deliver

虽然它是如何从您的控制器工作有点令人困惑。更不用说,他如何在课堂上成功调用实例方法?谁能开导我?