Как вести журнал статуса электронной почты, отправленного с помощью Pony gem в Sinatra

Я использую Sinatra Ruby для API и использую Pony gem для отправки электронных писем. Я хочу регистрировать статус каждой отправленной почты (было ли электронное письмо успешно отправлено или нет, кому оно было отправлено и т. д.). Я вижу только журнал маршрутизации в консоли Sinatra, но никаких признаков электронной почты. Короче говоря, я хочу вести журнал как в консоли rails.


person Biki Maharjan    schedule 11.01.2021    source источник
comment
Посмотрите документацию Pony gem, чтобы узнать, как проверить статус отправляемой почты.   -  person Kelsey Hannan    schedule 12.01.2021
comment
@KelseyHannan я не нашел способа проверить статус почты   -  person Biki Maharjan    schedule 12.01.2021


Ответы (1)


В документах есть способы увидеть если электронное письмо было отклонено:

Получение отчетов об ошибках по электронной почте:

@mail = Mail.read('/path/to/bounce_message.eml')

@mail.bounced?         #=> true
@mail.final_recipient  #=> rfc822;[email protected]
@mail.action           #=> failed
@mail.error_status     #=> 5.5.0
@mail.diagnostic_code  #=> smtp;550 Requested action not taken: mailbox unavailable
@mail.retryable?       #=> false

Поэтому, когда вы отправляете его, вы можете запустить puts @mail.bounced?, если у вас есть доступ к переменной экземпляра отправленного письма, в противном случае найдите, где сохраняется сообщение .eml.

person Kelsey Hannan    schedule 12.01.2021