首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写Django的EmailMessage类

重写Django的EmailMessage类
EN

Stack Overflow用户
提问于 2016-12-20 09:13:02
回答 1查看 530关注 0票数 2

我正在开发一个使用Django 1.7的现有项目,我们正在将我们的电子邮件服务与Amazon集成在一起。这提出了一个问题,我们无法监测哪些电子邮件是成功发送和谁的失败。因此,我正在考虑记录错误的电子邮件发送失败。目前,EmailMessage类的django.core.mail正被用于发送电子邮件,并且在任何地方为记录器添加代码将是一个肮脏的解决方案。因此,我正在考虑重写EmailMessage类,并使用我的自定义类发送电子邮件,并在那里添加登录逻辑。这是那个的代码

代码语言:javascript
复制
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

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

代码语言:javascript
复制
from email_message import EmailMessaging
message = EmailMessaging("this is the subject", "this is the body”, "sender@abc.com", ["myemailaddress@abc.com”])

SMTPException:服务器不支持STARTTLS扩展

但是,如果我使用EmailMessage类,它就可以正常工作。我无法理解为什么会发生这种情况。根据我所读到的,我认为通过重写EmailMessage类,我忽略了一些导致错误的默认Config设置。是因为这个案子吗?请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-20 09:26:54

尝试返回类似于父类方法中的结果

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41238555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档