【问题标题】:Delay_job gem not delivering mailsDelay_job gem 不发送邮件
【发布时间】:2011-11-14 02:46:30
【问题描述】:

我正在尝试使用 Delayed_job 从我的 rails 3.1 应用程序异步发送邮件。

我按照 github 页面上的说明进行操作,但没有发送我的邮件(在我尝试使用此 gem 之前它们已发送)。我看到它们被放在工作表上,并且正在被消耗,但是 bundle exec rake jobs:work -v 任务没有给出任何输出。

这是我控制器中的代码:

Notifier.delay.project_deleted(@project, current_user, u.email )

以及我邮件中的代码

def project_deleted(project, admin, destination)
  @project = project
  @admin = admin

  mail to: destination
end

编辑:如果重要的话,我也在 windows 和 sqlite3 db 上执行此操作。

EDIT2:另外,有些奇怪:如果我添加 .deliver,我知道我不应该添加,任务将被执行并发送邮件;尽管如此,控制器还是这样回应:` undefined method deliver' for #

【问题讨论】:

  • 可以交互模式启动delayed_job worker吗?
  • 运行 'bundle exec rake jobs:clear',然后按照手册 (github.com/tobi/delayed_job) 中的说明创建 script/job_runner 脚本,然后从控制台运行它。
  • 同时运行 'bundle exec rake jobs:work --trace'。
  • 如何运行 job_runner 脚本?我用 --trace 尝试了 rake 任务,但没有给出新的输出(除了环境的加载)
  • 另外,有些奇怪:如果我添加.deliver,我知道我不应该添加,任务将被执行并发送邮件;尽管如此,控制器还是这样回应:` undefined method deliver' for #<Delayed::Backend::ActiveRecord::Job:0xb42c394>

标签: ruby-on-rails ruby-on-rails-3 actionmailer delayed-job


【解决方案1】:

我不确定 Notifier.delay.project_deleted(@project, current_user, u.email ) 做了什么。

这是我要确定问题的方法。首先配置 Hoptoad。然后 =>

def project_deleted(project, admin, destination)
  @project = project
  @admin = admin

  mail to: destination
rescue Exception => e
  # send error to hoptoad
     HoptoadNotifier.notify(
        :error_class   => "Unable to Send Mail",
        :error_message => "Unable to send mail. ERROR: #{e.message}"
      )
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    相关资源
    最近更新 更多