私のsettings.pyに、私は入れました:
EMAIL_BACKEND = 'mailer.backend.DbBackend'
そのため、 からインポートする場合でもfrom django.core.mail import send_mail
、send_mail
関数は電子メールをすぐに送信するのではなく、データベースのキューに入れます。
実際に Web サイトを実行しているときは問題なく動作しますが、Web サイトをテストし、電子メールをトリガーするいくつかの Web ページにアクセスすると、電子メールはキューに入れられなくなりました。
def test_something(self):
...
# Check no emails are actually sent yet
self.assertEquals(len(mail.outbox), 0) # test fails here -- 2 != 0
# Check queued emails.
messages = Message.objects.all()
self.assertEquals(messages.count(), 2) # test would also fail here -- 0 != 2
...
テスト中にバックエンドを使用していないように見えるのはなぜですか? (それ自体send_mail
からのインポートmailer
はテストに合格しますが、のような他のメーリングアプリのインポートを実際に変更することはできませんdjango-templated-email
)