【发布时间】:2017-05-05 10:43:58
【问题描述】:
我正在开发一个使用 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 扩展
但是,如果我使用 EmailMessage 类,它可以正常工作。我无法理解为什么会这样。 根据我的阅读,我认为通过覆盖 EmailMessage 类,我错过了一些导致错误的默认配置设置。是这样吗? 请帮忙
【问题讨论】: