覆盖Django的EmailMessage类

时间:2016-12-20 09:13:03

标签: python django email smtp

我正在使用Django 1.7的现有项目 我们正在将我们的电子邮件服务与Amazon Ses集成。这引发了一个问题,即我们无法监控哪些电子邮件成功发送以及哪些电子邮件发生了故障。所以我想记录电子邮件发送失败的错误。 目前正在使用EmailMessage类的django.core.mail来发送电子邮件,并且为日志记录器添加代码将是一个肮脏的解决方案。所以我想覆盖EmailMessage类和使用我的Custom类发送电子邮件并添加用于登录的逻辑。 这是

的代码
xmlDoc.querySelectorAll('product[code="DVR4H1004N1P"]')[0].getElementsByTagName("price")[0].innerHTML;

当我尝试使用myClass发送电子邮件时,它会抛出错误: -

from django.core.mail import EmailMessage

class EmailMessaging(EmailMessage):

    def send(self):
        result = super(EmailMessaging, self).send()
        if(result):
            print 'success'
            #do nothing successful
        else:
            print 'fail' 
            #failed:- add event to logger | Db | Sentry
  

SMTPException:服务器不支持STARTTLS扩展名

但是,如果我使用EmailMessage类,它工作正常。我无法理解为什么会这样。 根据我的阅读,我认为通过覆盖EmailMessage类,我错过了一些导致错误的默认配置设置。是这样的吗? 请帮忙

1 个答案:

答案 0 :(得分:3)

尝试返回parent class method

中的结果
class EmailMessaging(EmailMessage):

    def send(self):
        result = super(EmailMessaging, self).send()
        if(result):
            print 'success'
            #do nothing successful
        else:
            print 'fail' 
            #failed:- add event to logger | Db | Sentry
        return result