django Djoser未发送与Google Workspace的验证电子邮件

i5desfxk  于 2023-05-19  发布在  Go
关注(0)|答案(1)|浏览(181)

我正在制作一个Django Webapp,遵循tutorial here。我已经把一切都安排到了一定的程度。当我将POST请求与我的用户信息一起发送到我的djoser端点时,我得到了与他在视频中相同的响应,状态为201,并且返回了name email和id字段。但是,我没有像他那样收到确认邮件。最显著的区别是,我不像演示者那样使用普通的Gmail帐户。我有一个通过Google Domains托管的自定义域,我也有一个Google Workspace帐户。我可以通过gmail网站访问这个帐户的gmail收件箱,我可以发送和接收电子邮件很好。但是,确认邮件不会发送。
我还按照this guide中的步骤操作,他们仍然不会发送。值得注意的是,当我查看谷歌帐户的历史记录时,我的应用密码没有被使用的记录。任何洞察力都会有所帮助。以下是我的www.example.com中settings.py包含相关设置的部分:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.Emailbackend'
EMAIL_HOST = 'smtp-relay.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'admin@DOMAINNAME.net'
EMAIL_HOST_PASSWORD = '**** **** **** ****' 
(I have tried the app password both in the original version with spaces google gave me, as well as without spaces.)
EMAIL_USE_TLS = True
c9x0cxw0

c9x0cxw01#

我在代码中使用了Gmail

  • 之前,你必须激活双向工厂认证在您的gmail *
  • 之后请复制密码并在密码配置中通过 *

请你试试这个代码

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your gmail'
EMAIL_HOST_PASSWORD = 'add the password provided with your 2 factory authentification after anable it'
EMAIL_USE_TLS = True
DJOSER = {
    'LOGIN_FIELD' : 'email',
    'USER_CREATE_PASSWORD_RETYPE' : True,
    'USERNAME_CHANGED_EMAIL_CONFIRMATION' : True,
    'PASSWORD_CHANGED_EMAIL_CONFIRMATION' : True,
    'SEND_EMAIL_CONFIRMATION' : True,
    'SET_USERNAME_RETYPE' : True,
    'SET_PASSWORD_RETYPE' : True,
    'USERNAME_RESET_CONFIRM_URL' : 'password/reset/confirm/{uid}/{token}',
    'PASSWORD_RESET_CONFIRM_URL' : 'email/reset/confirm/{uid}/{token}',
    'ACTIVATION_URL' : 'activate/{uid}/{token}',
    'SEND_ACTIVATION_EMAIL' : True,
    'SERIALIZERS' : {
        'user_create' : 'api_APAP.serializers.UserCreateSerializer',
        'user' : 'api_APAP.serializers.UserCreateSerializer',
        'user_delete' : 'api_APAP.serializers.UserDeleteSerializer',
        'token': 'api_APAP.serializers.TokenSerializer',
        'user_registration': 'api_APAP.serializers.UserSerializer',
    },
}

相关问题