Как узнать, правильно ли было отправлено письмо на Plone? return host.send (mail_text) всегда возвращает None - PullRequest
0 голосов
/ 19 июля 2011

По документации Plone, управляемой сообществом для разработчиков об отправке электронной почты:

try:
 host = getToolByName(self, 'MailHost')
 return host.send(mail_text)
except SMTPRecipientsRefused:
 # Don't disclose email address on failure
 raise SMTPRecipientsRefused('Recipient address rejected by server')

... но return host.send(mail_text) всегда возвращает None, независимо от того, было отправлено электронное письмо или нет (электронное письмо отправляется фактически). Итак, могу ли я предположить, что если None результат, он был успешным? Это не видно мне. Есть мысли?

Ответы [ 2 ]

6 голосов
/ 19 июля 2011

Python имеет исключения, поэтому не нужно возвращать код состояния, чтобы указать на ошибку.(В C / Unix код возврата 0 указывает на успех, логическое значение true указывает на ошибку.)

Если вам нужно отреагировать на ошибку почты в вашем коде, вы должны включить в параметры immediate=Trueв противном случае письмо будет отправлено на границе транзакции и, возможно, поставлено в очередь.Затем вы можете поймать исключение, используя try / исключением.

3 голосов
/ 19 июля 2011

Этот код предполагает, что отправка работает, если исключение не вызвано

...