我正在使用 Python 和 smtplib 通过 Amazon SES 发送电子邮件。如何捕获特定的发送错误?
例如,Amazon SES 可能会告诉我“此地址已列入黑名单”或“您已超出您的费率”或“您已超出您的容量配额”,我想对这些消息采取行动。
我有一个捕获黑名单的片段(我认为),如下所示。我真的不知道如何调试这些东西,因为异常只会出现在重型环境中,如果我触发异常,那么我担心亚马逊会取消我的配额。
try:
msg = EmailMultiAlternatives(subject, plain, from_address, [to_address])
msg.attach_alternative(html, "text/html")
msg.send()
except smtplib.SMTPResponseException as e:
error_code,error_msg = e.smtp_code, e.smtp_error
if error_code==554 and error_msg=='Message rejected: Address blacklisted.':
# do appropriate action for blacklisting
else:
# do appropriate action for throttling
else:
# log any other SMTP exceptions