0

我在轨道上工作3.1.3并使用delayed_job的3.0.1delayed_job的生产与错误的发送者发送电子邮件

我已经发现了一些东西错了电子邮件与有效的电子邮件发件人。

首先我将ActionMailer设置为使用Gmail (xxx.gmail.com),它工作正常。

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

我已经设置了新的ActionMailer来处理我的邮件服务器。

并在开发中进行测试。然后我将代码部署到生产服务器。它也可以正常工作。

但有时邮件发送到客户端通过使用我的旧的Gmail (xxx.gmail.com)作为发件人。 (发送正确无误)

PS。我使用rails_config gem保留电子邮件设置。

我试图用运气来调试2天。

  • 打印Settings.mail_sender多次在生产服务器的rails控制台中。它会正确返回(“无回复”)
  • 重新启动delayed_job。
  • 重新启动服务器。
  • 尝试将发件人记入日志。 (当发件人不是Gmail时,它会写入日志)。
  • 检查我的项目那里没有任何gmail设置或数据库。

有我的代码

# config/settings/production.yml 
    mail_sender: '"no-reply" <[email protected]>' 


# MyMailer.rb 

default :from => Settings.mail_sender 

def greeting(receiver)     
    @receiver = receiver 
    Delayed::Worker.logger.info "-------In inform client" 
    Delayed::Worker.logger.info "========inform client from #{Settings.mail_sender}" 

    mail(:to => "#{receiver.full_name} <#{receiver.email}>", 
    :subject => "Hello") do |format|     
     format.html 
    end 

    Delayed::Worker.logger.info inspect 
end 


# code I call the delayed_job 
    MyMailer.delay.greeting(client) if client.can_receive_email? 

任何想法?谢谢。

+0

不可能是一个测试服务,因为邮件需要在生产中发送并“窃取”该事件/发送邮件吗? – 2012-04-26 10:44:53

+0

对不起。我不擅长英语。你什么意思?你能解释一下吗? – Rafaiel 2012-04-26 11:09:53

回答

1

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

然后我尝试关闭旧服务器一会儿,然后我再次启动旧服务器。

问题也没有了。这是非常混乱看起来僵尸线程卡在我的旧服务器上。

最后我发现了delayed_job的进程卡住了我的服务器sry转储问题的真正问题。