下午好,
我正在尝试使用Sidekiq / Redis在后台发送电子邮件。我应该注意以下几点:
我正在使用devise-async
,它没有问题
我的ActionMailer
设置很好
如果我将邮件程序调用更改为UserMailer.contact_email(name).deliver!
,则电子邮件发送就好了。什么是无效的是UserMailer.delay.contact_email(name)
我可以在日志中看到正在进行的工作,你甚至可以假设邮件正在通过。只有当我发给自己时才发现它不起作用:
Apr 08 18:36:58 app01-production sidekiq: 2013-04-09T00:36:58Z 31155 TID-1jdwoq Sidekiq::Extensions::DelayedClass JID-6143790ebbf6e8bbc4a7bb85 INFO: done: 4.923 sec
显然在邮件对象上调用了DelayedClass扩展,但是没有。鉴于devise-async
有效,我想知道我是否使用了错误的语法或什么?“
谢谢!
答案 0 :(得分:3)
实际上我在使用rails 4版本时遇到同样的问题。上面的解决方案对我不起作用,我检查@benjamin repo并且找不到它。所以,我尝试了sidekiq邮件宝石https://github.com/andersondias/sidekiq_mailer并让它运作良好!
答案 1 :(得分:1)
我也遇到了类似的问题。我对延迟扩展称为#deliver的方式做了一些小改动。
试试这个:gem 'sidekiq', :git => "git@bitbucket.org:benjamintanweihao/sidekiq.git"
。
如果这对您有用,则可能是由于msg.from
没有设置。
相关代码为here。