ruby-on-rails – 为什么电子邮件不能与ActiveJob一起发送?
我正在将应用程序升级到Rails 4.2,因此我们可以利用ActionMailer的deliver_later方法.一切都在发展中很好.当我使用capistrano-sidekiq gem部署到我们的登台服务器时,似乎没有发送电子邮件.根据此日志,作业将排队并正确执行.
服务器是Ubuntu 14.04,通过apt-get安装了redis. [ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 51ddade2-4689-40fd-aeda-7e94f7260e43) to Sidekiq(mailers) with arguments: "ApplicationMailer","admin_message","deliver_now","Broken Link","Testing an email from staging." [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Performing ActionMailer::DeliveryJob from Sidekiq(mailers) with arguments: "ApplicationMailer","Testing an email from staging." [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Rendered application_mailer/admin_message.html.erb within layouts/mailer (1.9ms) [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Rendered layouts/mailer.html.erb (8.8ms) [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Rendered application_mailer/admin_message.text.erb within layouts/mailer (0.8ms) [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Rendered layouts/mailer.text.erb (3.6ms) [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Sent mail to email-testing@loamstudios.com (216.8ms) [ActiveJob] [ActionMailer::DeliveryJob] [51ddade2-4689-40fd-aeda-7e94f7260e43] Performed ActionMailer::DeliveryJob from Sidekiq(mailers) in 796.8ms 我检查了sidekiq是否正在使用ps aux |运行[sS] idekiq并且有一个条目: deploy 15104 0.4 7.4 972692 152452 ? Sl 10:07 0:03 sidekiq 3.5.1 sustainabilityassessment_staging [0 of 25 busy] 我还确保邮件队列在deploy.rb中存在set:sidekiq_queue,[“default”,“mailers”]. 我的邮件方法: def admin_message(subject,message) @message = message mail(to: "<address>",subject: subject) end 知道发生了什么或接下来我可以解决什么问题吗? 编辑: 编辑: 编辑:在config / environments / staging.rb中发现一个额外的config.action_mailer.raise_delivery_errors = false,阻止我看到我的错误.我现在可以看到电子邮件被拒绝了: Net::SMTPServerBusy: 454 4.7.1 <email address>: Relay access denied 编辑:另外一条信息,在同一邮件程序上调用deliver_now.调用deliver_later会导致电子邮件被拒绝.这使我认为应用程序的SMTP设置正常.在deliver_later调用中发生了一些事情,以防止发送电子邮件. 解决方法
我最近在我们的一台服务器上碰到了这个.它的配置方式与另一台服务器完全相同,但电子邮件未被发送,即使它看起来像Resque已成功处理它们.
事实证明,这是我们的监控工具God的一个问题.运行sudo服务神重启自己没有正确重置工人.解决办法是停止所有sudo神停止的工人,确认他们是用ps aux |停止的grep resque,然后关闭上帝与sudo服务神停止并启动它与sudo服务神开始. 如果您正在使用某种工具来监控,启动和停止Sidekiq,我会调查并确保工作人员正确停止并重新启动. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |