Rails 2.3, программа для отправки сообщений Net :: SMTPFatalError - PullRequest
1 голос
/ 21 июля 2010

Я отправляю электронное письмо с подтверждением сохранения. Когда адрес электронной почты в списке 'CC' является недействительным, я получаю следующую ошибку

Net :: SMTPFatalError (550 5.1.1 ... Пользователь неизвестен ):

и транзакция не сохраняется, даже если она вызывается из метода after_save в наблюдателе модели. Не следует сохранять транзакцию до появления ошибки.

Кроме того, когда я устанавливаю значение false_delivery_errors в файле конфигурации равным false, ошибка не возникает, и транзакция сохраняется, но электронное письмо не отправляется членам списка «Кому» и «CC», даже если один из адресов электронной почты в списке 'CC' недействителен.

Система должна как минимум отправлять электронные письма людям с действительными адресами электронной почты. Любые предложения по устранению этой проблемы.

спасибо, пепел

1 Ответ

0 голосов
/ 21 июля 2010

Извините, ваши обратные вызовы выполняются в контексте транзакции, и возврат false или исключение вызывает откат транзакции: http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

Можете ли вы отловить это исключение в своем коде, зарегистрируйте его, а не повторно поднимать его?

Вы можете использовать свой after_save для запуска рабочей очереди или отложенного задания .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...