【发布时间】:2014-07-30 17:08:35
【问题描述】:
我正在尝试实现 django 的内置忘记密码,但我从未收到电子邮件。我检查了我的垃圾邮件文件夹,但仍然没有。输入电子邮件后,它显示密码重置成功页面,但我从未收到电子邮件。
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'something@gmail.com'
EMAIL_HOST_PASSWORD = 'something'
DEFAULT_FROM_EMAIL = 'something@gmail.com'
SERVER_EMAIL = 'something@gmail.com'
urls.py
url(r'^forgot-password/$', views.forgot_password, name="forgot-password"),
views.py
def forgot_password(request):
if request.method == 'POST':
return password_reset(request,
from_email=request.POST.get('email'))
else:
return render(request, 'meddy1/forgot_password.html')
我已经尝试通过执行以下操作在 python manage.py shell 中对其进行测试
from django.core.mail import EmailMessage
email = EmailMessage('Subject', 'Message', to=['something@gmail.com'])
email.send()
它给了我 1 的输出,但我仍然没有收到任何电子邮件!
然后我通过执行以下操作尝试了这个 python manage.py shell
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'something@gmail.com',
['somethingelse@gmail.com'], fail_silently=False)
它给了我 1 的输出,我在收件箱中成功收到这封电子邮件。
我不知道为什么它没有通过表单发送电子邮件。
【问题讨论】:
-
您尝试过备用服务器吗?
-
@AshishKasturia 你是什么意思备用服务器?你能详细说明一下吗?
-
备用电子邮件服务器。
-
@HarisB。您的信息已发送这一事实并不能保证它会送达。尝试另一个 SMTP 服务器(可能是本地服务器 - sendmail 或类似服务器),看看会发生什么。 FWIW 我们有很多运行 Django 1.6 和更早版本的生产站点,我可以告诉你
email.send()确实有效。 -
@brunodesthuilliers 我在 python manage.py shell 中尝试了 send_mail 并成功收到了电子邮件。这是什么意思?