私は 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
本番サーバーのレールコンソール内で何度も印刷します。正しく返されます (「応答なし」)。- 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?
何か案が?ありがとう。