関数で解くことができます。次の両方を行う関数を作成します。
- 後で欲しいものを手に入れることができることを確認してください
- メッセージが送信されていることを確認してください。
または、もっと重い配管を行うこともできます。必ずそれを文書化し、他の人がこれを家で無駄な目的で試さないようにしてください。代わりに、DjangoまたはDjango-mailerチームに連絡して、より良い解決策を手配できるかどうか尋ねてください。
django.core.mailモジュールのEmailMessageクラスを装飾します。メッセージが正常に送信されたときに、必要な情報が別の場所にも配信されるようにします。
# wrappedmailer.py
from django.core.mail import EmailMessage
class WrappedEmailMessage(object):
def __init__(self, message):
self.__message = message
# more initialization
# override all EmailMessage methods:
# do what you want with what is provided,
# then return self.__message.method(...)
次に、アプリケーションが初期化されると、django-mailerがロードされる前に、次のことができます。
import django.core.mail
import newmailer
django.core.mail.EmailMessage = newmailer.WrappedEmailMessage
django.core.mailモジュールは同じPythonプロセス内のキャッシュにとどまるため、django.core.mailがインポートされるたびに、EmailMessageクラスは実際にはWrappedEmailMessageクラスになります。