Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Amazon AWS上捕获Python中的SMTP异常_Python_Amazon Web Services_Smtp - Fatal编程技术网

在Amazon AWS上捕获Python中的SMTP异常

在Amazon AWS上捕获Python中的SMTP异常,python,amazon-web-services,smtp,Python,Amazon Web Services,Smtp,我正在使用Python和smtplib通过AmazonSES发送电子邮件。如何捕获特定的发送错误 例如,Amazon SES可能会告诉我此地址已被列入黑名单,或者您已超过速率,或者您已超过容量配额,我希望对这些消息采取行动 我想我有一个片段被列入黑名单,如下所示。我真的不知道如何调试这些东西,因为异常只会在重载环境中出现,如果我触发异常,那么我担心Amazon会破坏我的配额 try: msg = EmailMultiAlternatives(subject, plain, from_ad

我正在使用Python和smtplib通过AmazonSES发送电子邮件。如何捕获特定的发送错误

例如,Amazon SES可能会告诉我此地址已被列入黑名单,或者您已超过速率,或者您已超过容量配额,我希望对这些消息采取行动

我想我有一个片段被列入黑名单,如下所示。我真的不知道如何调试这些东西,因为异常只会在重载环境中出现,如果我触发异常,那么我担心Amazon会破坏我的配额

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
您可以使用生成黑名单错误

发送电子邮件至blacklist@simulator.amazonses.com以验证应用程序是否正确处理产生的错误。如果使用邮箱模拟器地址,则反弹统计信息不会受到影响。无论您的AmazonSES帐户处于沙箱模式还是生产模式,都可以运行这些测试

邮箱模拟器当前不允许您测试限制或配额异常。但是,您的异常处理代码应该足以处理这些异常。我建议您使用find检查异常字符串,以适应错误消息中的任何添加

if error_code == 554 and error_msg.find('Address blacklisted') >= 0:
    # handle blacklisting
else: 
    ...
以下是一些您可以检查的SMTP响应,以供参考:

黑名单是554消息被拒绝:地址黑名单 未验证的地址为554邮件被拒绝:电子邮件地址未验证。 超出的发送速率为454节流失败:超出最大发送速率。 超出配额为454限制失败:超出每日邮件配额。 您可以使用生成黑名单错误

发送电子邮件至blacklist@simulator.amazonses.com以验证应用程序是否正确处理产生的错误。如果使用邮箱模拟器地址,则反弹统计信息不会受到影响。无论您的AmazonSES帐户处于沙箱模式还是生产模式,都可以运行这些测试

邮箱模拟器当前不允许您测试限制或配额异常。但是,您的异常处理代码应该足以处理这些异常。我建议您使用find检查异常字符串,以适应错误消息中的任何添加

if error_code == 554 and error_msg.find('Address blacklisted') >= 0:
    # handle blacklisting
else: 
    ...
以下是一些您可以检查的SMTP响应,以供参考:

黑名单是554消息被拒绝:地址黑名单 未验证的地址为554邮件被拒绝:电子邮件地址未验证。 超出的发送速率为454节流失败:超出最大发送速率。 超出配额为454限制失败:超出每日邮件配额。
你试过阿玛森·塞斯沙盒吗?还没有。我是那种先编写文档,后编写代码的程序员。你试过Amason SES沙盒吗?还没有。我是那种先编写文档,后编写代码的程序员。