Gemfile:
gem 'resque_mailer', '2.2.7' # Асинхронные отправки почты
controller:def some
MyMailer.send(parameter).deliver
rescue Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
#Здесь я могу отловить ошибку, но здесь мне не надо
end
mailer:class MyMailer < ActionMailer::Base
include Resque::Mailer
def send param
smtp_sets = LoadSmtpSets(1)
mail subject: 'some', from: 'some@mail.ru', delivery_method_options: smtp_sets
rescue Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError => e
smtp_sets = LoadSmtpSets(2)
mail subject: 'some', from: 'some@mail.ru', delivery_method_options: smtp_sets
#этот блок никогда не вызывается, а надо отловить ошибку, которую дает яндекс, к примеру
end
end
Суть: пытаюсь отправить с одного почтового ящика, возможна ошибка отправки, тогда вызывается отправка с другой почты.
Проблема: Не вызывается блок rescue
ошибку могу поймать только из контроллера. Теперь имеем кучу контроллеров из которых отправляется данное письмо. Хочу обработку ошибки отправки прикрутить в код мейлера, а не контроллера.
Блок rescue мейлера срабатывает, например, если есть синтаксическая ошибка в коде мейлера или я насильно raise some error, но не срабатывает при ошибке отправки.
Благодарю заранее