Django 1.9.6
你能帮我理解这里发生的事吗?在settings.py中,我已经组织了发送邮件的所有内容。
即:
EMAIL_HOST = 'smtp.mail.ru'
EMAIL_PORT = 2525
EMAIL_HOST_USER = 'ggggggg@mail.ru'
EMAIL_HOST_PASSWORD = 'ggggggg'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'ggggggg@mail.ru'
SERVER_EMAIL = 'ggggggg@mail.ru'
然后我准备了一个测试:
from django.test import TestCase
from django.core.mail import send_mail
class GeneralTest(TestCase):
def test_sending_email(self):
number_of_successfully_delivered_messages = send_mail("Subject mail",
"Message mail",
'tttt@mail.ru',
['ggggg@mail.ru'])
self.assertEqual(number_of_successfully_delivered_messages, 1)
测试通过。但电子邮件并没有发给我。当我在django shell中试用它时,电子邮件就会到达。
你能评论一下这里发生了什么吗?我可以在文档中找到关于这种情况的内容吗?
提前谢谢。
答案 0 :(得分:0)
来自文档:
如果您的任何Django视图使用Django的电子邮件功能发送电子邮件,您可能不希望每次使用该视图运行测试时都发送电子邮件。出于这个原因,Django的测试运行器会自动将所有Django发送的电子邮件重定向到虚拟发件箱。这使您可以测试发送电子邮件的各个方面 - 从发送到每封邮件内容的邮件数量 - 而无需实际发送邮件。
https://docs.djangoproject.com/en/1.9/topics/testing/tools/#topics-testing-email
这是一件好事,因为它允许您使用电子邮件进行大量单元测试,而无需实际发送所有这些可能数百封电子邮件。