Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 延迟\u作业在生产中发送错误发件人的电子邮件_Ruby On Rails_Ruby On Rails 3.1_Actionmailer_Delayed Job - Fatal编程技术网

Ruby on rails 延迟\u作业在生产中发送错误发件人的电子邮件

Ruby on rails 延迟\u作业在生产中发送错误发件人的电子邮件,ruby-on-rails,ruby-on-rails-3.1,actionmailer,delayed-job,Ruby On Rails,Ruby On Rails 3.1,Actionmailer,Delayed Job,我在rails 3.1.3上工作,并使用delayed_job 3.0.1 我在有效的电子邮件发件人中发现电子邮件有问题 首先,我将ActionMailer设置为与Gmail(xxx.Gmail.com)一起工作,它工作得很好 在生产服务器上部署一段时间后 我已将新ActionMailer设置为与我的邮件服务器一起工作 并在开发中进行了测试。然后我将代码部署到生产服务器。它也很好用 但有时会将我的旧Gmail(xxx.Gmail.com)作为发件人发送给客户。(正确发送,无错误) 另外,我使用r

我在rails 3.1.3上工作,并使用delayed_job 3.0.1

我在有效的电子邮件发件人中发现电子邮件有问题

首先,我将ActionMailer设置为与Gmail
(xxx.Gmail.com)
一起工作,它工作得很好

在生产服务器上部署一段时间后

我已将新ActionMailer设置为与我的邮件服务器一起工作

并在开发中进行了测试。然后我将代码部署到生产服务器。它也很好用

但有时会将我的旧Gmail
(xxx.Gmail.com)
作为发件人发送给客户。(正确发送,无错误)

另外,我使用rails\u config gem来保存电子邮件设置

我已经试着调试了2天,运气不错

  • 在生产服务器上的rails控制台内多次打印
    Settings.mail\u sender
    。返回正确(“无回复”)
  • 重新启动延迟的作业
  • 重新启动服务器
  • 尝试将发件人放入日志。(当发件人不是Gmail时,它会写入日志)
  • 检查我的项目有没有任何gmail设置或在数据库中
这是我的密码

#config/settings/production.yml
邮件发件人:“‘无回复’”
#MyMailer.rb
默认值:from=>Settings.mail\u发件人
def问候语(接收者)
@接收器=接收器
延迟::Worker.logger.info“-----在通知客户机中”
延迟::Worker.logger.info“==========从#{Settings.mail_sender}通知客户端”
邮件(:to=>“#{receiver.full_name}”,
:subject=>“Hello”)do | format |
format.html
结束
延迟::Worker.logger.info检查
结束
#代码我称之为延迟工作
MyMailer.delay.greeting(客户)如果客户。你能收到电子邮件吗?

有什么想法吗?谢谢。

我已经将我的应用程序部署到新服务器(使用相同的数据)问题解决了

然后我尝试关闭旧服务器一段时间,然后我再次启动旧服务器

问题也解决了。看起来很混乱,好像僵尸线程卡在了我的旧服务器上


最后,我发现了真正的问题,延迟的_作业的过程卡在了我的服务器sry上,用于转储问题

难道不是一个测试服务发现邮件需要在生产中发送并“窃取”该事件/发送邮件吗?对不起。我的英语不好。什么意思?你能解释一下吗?