【问题标题】:sidekiq not sending mailsidekiq 不发邮件
【发布时间】:2013-11-26 02:06:43
【问题描述】:

我有一个功能,我必须从 csv 文件上传大量记录。如果任何一条记录无效,则不应上传任何数据。需要将包含无效记录错误的 csv 文件发送给上传数据的用户。我正在使用 rails (3.2)、sidekiq (2.16.1) 和 mysql。

所有邮件(设计和自定义)邮件都已送达,我会在我的 gmail 收件箱中收到它们。上述功能在转移到 sidekiq 之前运行良好。

用户模型

#works n gets delivered in inbox
Notifier.send_welcome_mail(self).deliver 

Sidekiq 工作者

class UploadWorker
  include Sidekiq::Worker
  sidekiq_options retry: false

  def perform(user_id, inspection_id)
    user = User.find(user_id)
    inspection = Inspection.find(inspection_id)
    err = false
    #check if all data is valid and upload if valid
    #
    ...
    #shows in development log but doesnt get delivered in inbox.
    Notifier.delay.upload_success(user, inspection) if err
    Notifier.delay.upload_failed(user, inspection) unless err
  end
end

开发日志

Sent mail to someone@gmail.com (142ms)
Date: Wed, 13 Nov 2013 17:24:25 +0530
To: someone@gmail.com
Message-ID: <5283687179a92_203f59f273e3@gmail.mail>
Subject: ["someone@gmail.com"] Upload failed
Mime-Version: 1.0
Content-Type: text/html;
  charset=UTF-8
Content-Transfer-Encoding: 7bit

sidekiq 日志

2013-11-13T13:21:20Z 10064 TID-1n41gu UploadWorker JID-2d2c930601caf6a62c86e142 INFO: start
2013-11-13T13:22:13Z 10064 TID-1n41gu UploadWorker JID-2d2c930601caf6a62c86e142 INFO: done: 52.858 sec
2013-11-13T13:22:13Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-bcae8ea4974ecfe280e411bd INFO: start
2013-11-13T13:22:14Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-bcae8ea4974ecfe280e411bd INFO: done: 0.858 sec
2013-11-13T13:23:51Z 10064 TID-1n41gu UploadWorker JID-03fe3dee40f6390f5cec1d93 INFO: start
2013-11-13T13:23:54Z 10064 TID-1n41gu UploadWorker JID-03fe3dee40f6390f5cec1d93 INFO: done: 2.779 sec
2013-11-13T13:23:54Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-44f75877c5919302c9ded4fe INFO: start
2013-11-13T13:23:54Z 10064 TID-1w7iwu Sidekiq::Extensions::DelayedMailer JID-44f75877c5919302c9ded4fe INFO: done: 0.038 sec

问题是,只有来自 sidekiq 的邮件在日志中显示为已发送但未送达。来自设计自定义邮件的其他邮件确实会送达。

【问题讨论】:

  • 同样的问题有什么解决办法吗?

标签: ruby-on-rails-3 actionmailer sidekiq


【解决方案1】:

您确定您的开发电子邮件设置设置正确吗?尝试在config/development.rb 中设置以下内容:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
  :address        => '127.0.0.1',
  :port           => '587',
}

【讨论】:

  • 在开发环境中,除了sidekiq中的邮件之外的所有邮件都正在发送
猜你喜欢
  • 1970-01-01
  • 2013-03-31
  • 2017-04-03
  • 1970-01-01
  • 2015-05-02
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多