我正在使用Django密码重置.
我在settings.py中有这个代码:
EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'myusername@gmail.com' EMAIL_HOST_PASSWORD = 'mypassword' DEFAULT_FROM_EMAIL = 'myusername@gmail.com' EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' SERVER_EMAIL = 'myusername@gmail.com'
它将我重定向到正确的页面,但它不会发送电子邮件.我检查了垃圾邮件文件夹等,但仍然没有:(
任何想法都非常感谢!
编辑
我试图使用控制台测试它,但我收到以下错误:
>>> email = EmailMessage('Mail test', 'this is a test', to=['myusername@gmail.com']) >>> email.send() Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/django/core/mail/message.py", line 255, in send return self.get_connection(fail_silently).send_messages([self]) File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 88, in send_messages new_conn_created = self.open() File "/usr/local/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 55, in open self.connection.login(self.username, self.password) File "/usr/lib/python2.7/smtplib.py", line 576, in login raise SMTPException("SMTP AUTH extension not supported by server.") SMTPException: SMTP AUTH extension not supported by server.
编辑
我有如上配置的settings.py.由于某种原因它以前没有工作,但现在似乎是.我跑的时候
python manage.py shell
并使用EmailMessage和send()函数测试它,我得到状态代码1,我收到电子邮件.但是,我仍然没有收到来自password_reset的电子邮件.有任何想法吗?谢谢各位的意见!
当您在Django Shell中进行发送测试时,这意味着您的电子邮件设置已正确配置。
如果仍然无法从password_reset获取电子邮件,则必须在此字段中搜索问题。
您必须知道,密码重置电子邮件仅发送给活动用户(is_active),并且仅在其具有可用密码(has_usable_password)的情况下发送。
如果用户输入的密码无效,则Django只会静默不发送重置电子邮件。
在Django Shell中使用以下代码测试所有用户:
from django.contrib.auth import get_user_model [(u.email, u.is_active, u.has_usable_password()) for u in get_user_model().objects.all()]