Я работаю на рельсах 3.1.3 и использую delayed_job 3.0.1
Я обнаружил, что что-то не так с электронной почтой с действительным отправителем.
Сначала я настраиваю ActionMailer на работу с Gmail (xxx.gmail.com)
, и он работает нормально.
После того, как я какое-то время развернусь на производственном сервере.
Я настроил новый ActionMailer для работы с моим почтовым сервером.
И протестировал на разработке. Затем я развертываю код на производственном сервере. Он тоже отлично работает.
НО иногда электронное письмо отправляется клиенту с использованием моего старого Gmail (xxx.gmail.com)
в качестве отправителя. (Отправлено правильно, без ошибок)
PS. Я использую гем rails_config для сохранения настроек электронной почты.
Я попытался отладить это в течение 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?
Любая идея? Спасибо.