1

django.core.mail.send_mail()プロジェクト全体 (INSTALLED_APPS 内のサードパーティ プロジェクトを含む) の呼び出しをカスタム に置き換えることはできsend_mail()ますか?

send_mail()django-mailerを 私のプロジェクトに統合しています。これはdjango.core.mail.send_mail(). どちらも同じ関数シグネチャを使用しているため、ドキュメントでは、通常 Django 提供のバージョンをインポートする場所に django-mailer バージョンをインポートすることを提案しています。

# favour django-mailer but fall back to django.core.mail
from django.conf import settings

if "mailer" in settings.INSTALLED_APPS:
    from mailer import send_mail
else:
    from django.core.mail import send_mail

これは自分のアプリ コードでは機能しますが、django.core.mail.send_mail(). 現在、これらのアプリが電子メールを送信しようとすると、エラーが発生します。

Django は を置き換えるフックを提供していますかdjango.core.mail.send_mail()、それとも回避策はありますか? 現在、電子メールを送信する各サードパーティ プロジェクトをフォークし、上記の条件付きインポート コードを追加することを検討していますが、それは明らかに理想的ではありません。

4

1 に答える 1

1

Django には、SMTP を経由する代わりに、からの電子メールの送信方法をオーバーライドできる電子メール バックエンドがあります。django.core.mailそれらをローカルに保存できるものなどがあります。また、あなたがやりたいことを正確に行うためのdjango-mailer1 つ ( usage.txt で説明されているように) も含まれています。

于 2012-08-12T02:32:13.487 に答える