我使用内置的Django密码重置,并且已经发送了'密码重置'页面出现,但电子邮件永远不会发送。我的电子邮件设置设置如下:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'my_email'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = 'my_password'
我在开发过程中包括以下内容,但不完全确定是否有必要:
ALLOWED_HOSTS = ['localhost']
控制台说:
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Subject: Password reset on localhost:8000
From: myemail@gmail.com
To: anotheremail@hotmail.com
Date: Wed, 17 Feb 2016 04:53:17 -0000
Message-ID: <some_id@toms-macbook-air.local>
看起来应该发生的一切,但电子邮件永远不会发送。我在这里做错了吗?
答案 0 :(得分:4)
您正在使用仅用于测试的虚拟电子邮件后端。改变行
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
到
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
来自docs:
控制台后端
而不是发送真正的电子邮件,控制台后端只是编写 将被发送到标准输出的电子邮件。默认情况下 控制台后端写入stdout。您可以使用不同的流 对象通过在构造时提供stream关键字参数来实现 连接。