在EmailMultiAlternatives django中捕获smtp异常

时间:2014-12-12 07:12:19

标签: python django email smtplib

我正在编写一个管理命令,我将向多个收件人发送电子邮件。我想做一个日志,我可以告诉我邮件是否成功发送给收件人。到目前为止,我能够运行这么多代码

from django.core.mail import EmailMultiAlternatives
from smtplib import SMTPException

    try:
        msg = EmailMultiAlternatives(data['subject'], data['text_content'], data['from_mail'], data['recipient_list'], bcc=data['bcc_address'])
        if data['html_content']:
            msg.attach_alternative(data['html_content'], "text/html")

        msg.send(fail_silently=False)

    except SMTPException as e:
        error_code,error_msg = e.smtp_code, e.smtp_error
        print error_code, error_msg
    '''except Exception as e:
        print e
        print "==========="
        print traceback.print_exc()'''

我现在有点卡住了。我故意在data['recipient_list']中收到错误的收件人电子邮件,但我仍然无法发现错误。我不确定我做错了什么。什么是纠正在django中捕获smtp异常的方法

1 个答案:

答案 0 :(得分:0)

它不会以这种方式工作。无论是否存在此类电子邮件,SMTP服务器都将发送电子邮件。您可能会在稍后收到退回邮件到您的收件箱,但这是不同的情况。

我会说应该验证电子邮件地址语法,这就是你所能做的。您还可以享受send()返回值,即发送的电子邮件数量。