【问题标题】:Catching smtp exception in EmailMultiAlternatives django在 EmailMultiAlternatives django 中捕获 smtp 异常
【发布时间】:2015-02-10 20:50:36
【问题描述】:

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

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 异常的正确方法是什么

【问题讨论】:

    标签: python django email smtplib


    【解决方案1】:

    这种方式是行不通的。无论邮件是否存在,SMTP 服务器都会发送邮件。稍后您可能会在收件箱中收到退回邮件,但情况不同。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-09
      • 2012-11-02
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 2011-11-13
      相关资源
      最近更新 更多