簡體   English   中英

覆蓋Django的EmailMessage類

[英]Overriding the EmailMessage class of Django

我正在使用Django 1.7的現有項目中工作。我們正在將電子郵件服務與Amazon Ses集成在一起。 這就產生了一個問題,即我們無法監視成功發送了哪些電子郵件以及失敗了的電子郵件。 因此,我正在考慮記錄電子郵件發送失敗的錯誤。 當前,django.core.mail的EmailMessage類用於發送電子郵件,並且在各處添加用於記錄器的代碼將是一個骯臟的解決方案。 因此,我正在考慮重寫EmailMessage類,並使用我的Custom類發送電子郵件並在其中添加用於記錄的邏輯。 這是該代碼

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類,我錯過了一些Default Config設置,這會導致錯誤。 是這樣嗎 請幫忙

嘗試返回類似於父類方法的結果

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM