【问题标题】:Sidekiq is not sending emailSidekiq 不发送电子邮件
【发布时间】:2017-10-04 06:41:24
【问题描述】:

我正在使用 sidekiq 在后台发送邮件。 我在 sidekiq 日志中得到了这个

  def performed?
    create_activation_digest &&
    customer.save &&
    send_mail(:account_activation, { email: customer.email, activation_token: customer.activation_token }) # from here mailer method is being called
  end

class ApplicationMailer < ActionMailer::Base
  default from: 'lavo@cactimedia.biz'
  layout 'mailer'
  before_action :initialize_defaults

  private

  def initialize_defaults
    @greeting = "Dear User,"
    @signature = "The Lavo Team"
  end
end

class NotificationsMailer < ApplicationMailer

  def account_activation(args={})
    activation_token = args[:activation_token]
    email = args[:email]
    @activation_link = edit_api_activation_url(activation_token, email: email)

    mail(to: email)
  end
end

[ActiveJob] [ActionMailer::DeliveryJob] [2797cd49-dabe-4af0-a5a8-c47ae5e956b3] Performing ActionMailer::DeliveryJob from Sidekiq(mailers) with arguments: "NotificationsMailer", "password_digest", "deliver_now", #<GlobalID:0x00000007281480 @uri=#<URI::GID gid://lavo-laundry/Customer/6>>
[ActiveJob] [ActionMailer::DeliveryJob] [2797cd49-dabe-4af0-a5a8-c47ae5e956b3] Performed ActionMailer::DeliveryJob from Sidekiq(mailers) in 0.97ms

但是没有发送邮件。有人知道我是否遗漏了什么吗?

【问题讨论】:

  • 你能在实际使用 sidekiq 发送邮件的地方添加更多代码吗?
  • 编辑了一个问题,添加了邮件方法。
  • 你能在调用这个邮件的地方添加你的sidekiq作业的代码吗?
  • 你在 send_mail() 的末尾尝试.deliver 吗?
  • 是的,我试过了,我发现邮件没有发送。但我可以在 rails 日志中看到 - [ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: e91ccd3f-059d-4be1-97e1-c77d6aeb9761) 到 Sidekiq(mailers),参数为:“NotificationsMailer”、“account_activation”、“deliver_now” , {:email=>"palash12@yopmail.com", :activation_token=>"d60b4251f1424ae1b2a1be1430e590ee"} 并在 Sidekiq 日志中:[ActiveJob] [ActionMailer::DeliveryJob] [e91ccd3f-059d-4be1-97e1-c77d6aeb9761] 执行 ActionMailer: :Sidekiq(mailers) 的DeliveryJob 0.69ms

标签: ruby-on-rails ruby redis sidekiq


【解决方案1】:

检查 sidekiq 设置是否具有以下内容:

# config / sidekiq.yml
---
:queues:
  - mailers

或使用以下命令启动 sidekiq 服务:

bundle exec sidekiq -q default -q mailers

https://github.com/mperham/sidekiq/wiki/Active-Job#action-mailer所示

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 2013-11-13
    • 1970-01-01
    • 2011-09-16
    • 2014-07-18
    相关资源
    最近更新 更多