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

时间:2011-07-19 15:32:07

标签: plone

关于发送电子邮件Plone community-managed developer docs之后:

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 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:3)

该代码假定发送有效,除非引发异常