Rails, проверьте, было ли отправлено письмо или нет - PullRequest
2 голосов
/ 26 октября 2011

У меня есть приложение, которое отправляет электронную почту зарегистрированным пользователям. Это приложение отправляет автоматическое электронное письмо пользователю, когда он использует некоторые функции. Кроме того, на экране администратора администратор может отправлять электронные письма всем лицам, которые по какой-либо причине не получили письмо автоматически. Я храню в базе данных значение, показывающее, было ли доставлено письмо или нет, поэтому администратор не будет отправлять письма тому, кто его уже получил.

Проблема заключается в следующем: как проверить, правильно ли было доставлено письмо, чтобы обновить это значение? Я не говорю о тестах, мне нужно проверять сразу после вызова метода deliver, было ли отправлено электронное письмо или возникла какая-либо проблема, например, потеря соединения или неправильная электронная почта Есть ли способ или способ сделать это?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 26 октября 2011

Когда вы отправляете сообщение и не возникает никаких ошибок, вы можете предположить, что почта была доставлена ​​(по крайней мере, вы можете предположить, что какая-то система взяла на себя ответственность за доставку вашего сообщения).

Тем не менее, естьмного причин сбоя доставки;иногда вы можете получить сообщение об ошибке через несколько часов или даже дней.Вам нужно будет иметь прыгающий почтовый адрес и проверять возвращенные сообщения.Если вы хотите обработать подпрыгивание, проверьте программное обеспечение с открытым исходным кодом, например, phplist .Это не так тривиально, как вы думаете.

Другая альтернатива - отправка электронной почты через специальный сервис, такой как us SendGrid .Эти службы предоставляют API, которые позволят вам получать информацию о ваших сообщениях.

1 голос
/ 26 августа 2012

Вы также можете использовать mailman gem для анализа ответных сообщений на наличие плохих сообщений.

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