【发布时间】:2019-06-08 03:07:09
【问题描述】:
大家好,
我创建了一个邮件程序来向我的客户发送电子邮件。截至目前,我仍在测试它,但我无法让它工作。我已经阅读了 redis、sidekiq、rails_mailer,但仍然一无所获。我可以看到邮件在 sidekiq UI 的队列中,但我收不到邮件。
这是我的代码流程。
如果用户想向客户发送电子邮件,他们将选中视图上的文本框。
我将在控制器上触发一个方法。这是我的代码。
def send_workorder_message
if params.has_key?(:to_send_email)
WorkorderMessage::WorkorderMessageJob.perform_in(10.seconds, @curr_user, params[:message])
end
endv
- 然后创建工作单作业。这是代码。
class WorkorderMessage::WorkorderMessageJob
# include SuckerPunch::Job
include Sidekiq::Worker
sidekiq_options queue: 'mailers'
def perform(user, message)
Spree::WorkorderMailer.workorder_send_to_email(user, message).deliver_now
# ActiveRecord::Base.connection_pool.with_connection do
# end
end
end
- 之后会触发 WorkorderMailer 代码如下。
class WorkorderMailer < BaseMailer
def workorder_send_to_email(to_user, message)
ActiveRecord::Base.connection_pool.with_connection do
subject = "sample message mailer"
@message = message
@user = to_user
mail(
to: @user.email,
# 'reply-to': Spree::Store.current.support_address,
from: Spree::Store.current.support_address,
subject: subject
)
end
end
end
当我使用预览邮件时,我可以看到 UI 工作正常。
我还注意到,在 sidekiq 视图中,我看到了这个 User Obj。我有那么正常吗?
【问题讨论】:
-
我想知道您的
ActionMailer::Base.smtp_settings是否配置不正确,无法发送交易电子邮件。您可以分享您的ActionMailer::Base.smtp_settings并省略任何敏感凭据吗? -
您正在指定作业转到
mailers队列。您是否使用-q mailers启动 Sidekiq 以便处理此队列? -
如有疑问,请不要配置任何东西。让它使用默认值,一切都会开箱即用。
-
MikePerham,MFrazier 你好,先生。实际上,我们有一个工作邮件。这只是工作中的补充。我的前辈正在度假,只有我和他。但如果我能得到代码库,我会在周一发送一些详细信息。谢谢
标签: ruby-on-rails ruby actionmailer jobs sidekiq