我在rails 3.1.3上工作并使用delayed_job 3.0.1
我在有效的电子邮件发件人中发现电子邮件有问题。
首先,我将 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" <no-reply@myapp.com>'
# 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?
任何的想法?谢谢。