首页 > 解决方案 > 我无法使用 Django 发送电子邮件是什么?

问题描述

我在我的谷歌账户上打开了“允许不太安全的应用程序”。 但是当我提交密码重置表单时,它会转到 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 = '**********'

我从字面上阅读了所有其他问题并尝试了一切。没有什么对我有用。我很想在这里找到解决方案,请帮忙。

标签: pythondjangodjango-formsdjango-authenticationdjango-email

解决方案


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

相反,请使用SendGridMailgun 之类的东西。两者都有便宜或免费的入门计划。


推荐阅读