【发布时间】: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