use*_*032 10 django gmail smtp django-authentication django-email
我正在使用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'
Run Code Online (Sandbox Code Playgroud)
它将我重定向到正确的页面,但它不会发送电子邮件.我检查了垃圾邮件文件夹等,但仍然没有:(
任何想法都非常感谢!
编辑
我试图使用控制台测试它,但我收到以下错误:
>>> email = EmailMessage('Mail test', 'this is a test', to=['myusername@gmail.com'])
>>> email.send()
Traceback (most recent call last):
File "<console>", line 1, in <module>
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.
Run Code Online (Sandbox Code Playgroud)
编辑
我有如上配置的settings.py.由于某种原因它以前没有工作,但现在似乎是.我跑的时候
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
并使用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()]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3034 次 |
最近记录: |