【问题标题】:What am I unable to send email using Django?我无法使用 Django 发送电子邮件是什么?
【发布时间】:2020-04-09 23:06:58
【问题描述】:

我已在我的 Google 帐户上启用“允许安全性较低的应用”。 但是当我提交密码重置表单时,它会转到 password_reset_done.html 并且不会显示任何错误。但是邮件没有发送。它既不在我的发件箱中,也不在它应该发送到的电子邮件的收件箱中。

这就是我的 urls.py 的样子:

from django.contrib.auth import views as auth_views

path('password_reset/',       
                        auth_views.PasswordResetView.as_view(template_name="my_app/password_reset.html"), 
                        name="password_reset"),
    path('password_reset/done/',  
                        auth_views.PasswordResetDoneView.as_view(template_name="my_app/password_reset_done.html"), 
                        name="password_reset_done"),
    path('password-reset-confirm/<uidb64>/<token>/', 
                        auth_views.PasswordResetConfirmView.as_view(template_name="my_app/password_reset_confirm.html"), 
                        name="password_reset_confirm" ),
    path('reset_password/', 
                        auth_views.PasswordResetCompleteView.as_view(template_name="my_app/password_reset_complete.html"), 
                        name="password_reset_complete" ),

这是 settings.py 文件:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True 
EMAIL_HOST_USER = 'my_g_mail_id_here@domain.com'
EMAIL_HOST_PASSWORD = '**********'

我已经阅读了所有其他问题并尝试了所有方法。没有什么对我有用。 我很想在这里找到解决方案,请帮忙。

【问题讨论】:

  • 您是否能够使用下面显示的任何答案来解决这个问题?如果是这样,请记得accept it。这会向其他用户显示您找到了解决方案。

标签: python django django-forms django-authentication django-email


【解决方案1】:

不要为此使用 Gmail。它不是为程序化电子邮件发送而设计的。

改为使用SendGridMailgun 之类的名称。两者都有便宜或免费的入门计划。

【讨论】:

    【解决方案2】:

    我找到了解决方案。我没有通过 Django 的默认注册表单注册用户的电子邮件 ID。 稍微调整一下以在表单中添加电子邮件字段,然后用户开始接收电子邮件。 conf文件中没有错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-07
      • 2011-08-14
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多