在我们的某个应用程序中,我们运行的ActiveJob / Sidekiq / ActionMailer设置正常运行。由于这是一个预订应用程序,我们通过此设置成功向用户发送确认。
我们在尝试让Devise通过ActiveJob发送有关用户操作(注册,password_reset等)的邮件时遇到了困难。
我确实在User
模型中覆盖了通知发送的默认行为,如下所示:
def send_devise_notification(notification, *args)
devise_mailer.send(notification, self, *args).deliver_later
end
我走近了一步。我添加了一个队列Devise推送它失去的工作(XXX_default_mailer_queue) in
config / sidekiq.yml`。现在Devise成功地将作业推送到Sidekiq队列。但遗憾的是仍然没有邮件被发送,作业执行时间远远低于1s :
ActionMailer::DeliveryJob JID-fa4bccc79be489f098c7f5ef INFO: done: 0.415
如果我切换到devise_mailer.send(notification, self, *args).deliver_now
,则会呈现正确的电子邮件但不会发送。
正如我所说,我们的邮件设置与Devise不同,这就是为什么我认为它是某个地方的Devise特定问题
Devise在这做什么?我该如何调试该过程?通常情况下,我会跳到我的工作或邮件课程的某个地方,但没有...
最好,Andi