gpt4 book ai didi

python - 覆盖 Django 的 EmailMessage 类

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:34 25 4
gpt4 key购买 nike

我正在处理一个使用 Django 1.7 的现有项目我们正在将我们的电子邮件服务与 Amazon Ses 集成。这引发了一个问题,即我们无法监控哪些邮件发送成功,哪些邮件发送失败。所以我正在考虑记录电子邮件发送失败的错误。目前,django.core.mail 的 EmailMessage 类被用于发送电子邮件,并且在任何地方添加记录器代码将是一个肮脏的解决方案。所以我正在考虑重写 EmailMessage 类并使用我的自定义类发送电子邮件并在其中添加日志记录逻辑。这是它的代码

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 发送电子邮件时,它会抛出一个错误:-

from email_message import EmailMessaging
message = EmailMessaging("this is the subject", "this is the body”, "sender@abc.com", ["myemailaddress@abc.com”])

SMTPException: STARTTLS extension not supported by server

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

最佳答案

尝试返回类似 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

关于python - 覆盖 Django 的 EmailMessage 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41238555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com