ruby-on-rails - Delayed_job没有发送Rails 3电子邮件

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

注意:使用Rails 3.1和当前的delay_job gem。

我有一个称为Userafter_create :mail_confirmation模型。

按照delay_job指令,mail_confirmation方法如下所示:

def mail_confirmation
    UserMailer.delay.registration_confirmation(self)
end
UserMailer是:
class UserMailer < ActionMailer::Base
  default from: "test@mysite.com"

  def registration_confirmation(user)
    @user = user
    mail(:to => "#{user.full_name} <#{user.email}>", :subject => "Test registration email")
  end
end

作业已排队,并且rake jobs:work的输出使它看起来好像成功完成了:
[Worker(host:mymac.local pid:73694)] Starting job worker
[Worker(host:mymac.local pid:73694)] Class#registration_confirmation completed after 1.3659
[Worker(host:mymac.local pid:73694)] 1 jobs processed at 0.7288 j/s, 0 failed ...

没有错误,但从未发送过电子邮件。如果我从delayed模型的方法调用中删除User并使用标准的deliver方法,则效果很好:
def mail_confirmation
    UserMailer.registration_confirmation(self).deliver
end

处理工作时,我如何找出正在发生的事情?知道如何解决吗?

更新似乎与此有关:

NoMethodError with delayed_job (collectiveidea gem)

最佳答案

是的,我有同样的问题。 @Clay是正确的,此刻存在问题:https://github.com/collectiveidea/delayed_job/issues/323

我通过恢复到以前的delay_job版本解决了这个问题。

gem 'delayed_job', '2.1.2'

关于ruby-on-rails - Delayed_job没有发送Rails 3电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596592/

相关文章:

ruby-on-rails - 在 Rails 中选择不同的 PostgreSQL 错误

ruby-on-rails - ActionMailer : 501 <>: missing or malformed local part 的问题

ruby-on-rails - Rails 3.0,ActionMailer 传递不起作用,不显示错误消息

ruby-on-rails - Rails 4 + Devise : Invalid route name, 已在使用中

ruby-on-rails - 在 Heroku 上运行 Ruby/Rails 应用程序的浏览器没有 "Destroy"确认

ruby-on-rails - RSpec 测试运行状况端点,无需 Controller 或操作

ruby-on-rails - 在生产 ROR 中通过 actionmailer 发送邮件的严重问题

ruby-on-rails - Rspec 让变量产生奇怪的结果

ruby-on-rails - Rails 片段缓存 : would 100K+ fragments degrade performance?

ruby-on-rails - 如何在 Rails 3 中将多个属性传递给 find_or_create_by?