我如何知道Plone上是否正确发送了电子邮件?'return host.send(mail_text)'总是返回None

Som*_*DOS 0 plone

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')
Run Code Online (Sandbox Code Playgroud)

...但return host.send(mail_text)总是返回None,无论电子邮件是否已发送(电子邮件实际发送).那么,我能否假设None结果是否成功呢?这对我来说不合适.有什么想法吗?

Lau*_*owe 6

Python有异常,因此不需要返回状态代码来指示失败.(使用C/Unix,返回码0表示成功,布尔值为true表示错误.)

如果您需要对代码中的邮件失败做出反应,则必须包含immediate=True参数,否则邮件将在事务边界发送并可能排队.然后,您可以使用try/except捕获异常.