django - SMTPAuthenticationError:Django 中的身份验证不成功 [BL1PR13CA0128.namprd13.prod.outlook.com]
问题描述
我正在尝试从 Django API 发送和发送电子邮件(从我的个人 hotmail 帐户)。当我通过 Postman 向本地服务器发出请求时,它可以工作,但是当我在 Heroku 上托管我的应用程序时,它会引发以下异常:
我已经阅读并且 Hotmail 帐户具有类似 SMTP 权限的内容:
这是我的 Django 配置变量:
CORS_ALLOWED_ORIGINS = ['https://gianlop3z-dev.web.app']
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST = 'smtp.office365.com'
EMAIL_HOST_PASSWORD = environ.get('EMAIL_HOST_PASSWORD')
EMAIL_HOST_USER = environ.get('EMAIL_HOST_USER')
django_heroku.settings(locals())
环境变量在 Heroku 中。
解决方案
确保您的 Outlook 帐户设置在弹出选项下更改为是。(我相信你已经按照你的照片做了)
检查您的 Outlook 帐户是否被异常活动阻止,在这种情况下,您可能需要验证您的帐户(通过分配的手机#)并验证和查看您的活动(电子邮件应如下所示)
为了帮助确保您的安全,我们已阻止访问您的收件箱、联系人列表和日历以进行该登录。请查看您最近的活动,我们将帮助您保护您的帐户。要重新获得访问权限,您需要确认最近的活动是您的。查看最近的活动 感谢 Microsoft 客户团队
在您的 settings.py 更改如下
EMAIL_HOST='smtp-mail.outlook.com'
EMAIL_PORT=587
EMAIL_HOST_USER='your email'
EMAIL_HOST_PASSWORD='password'
EMAIL_USE_TLS=True
server = smtplib.SMTP('smtp.office365.com', 587)
server.starttls()
最后确保导入 smtplib
推荐阅读
- python - 当我尝试执行“.author”时,它不断返回错误
- python - 用按钮构建一个棋盘,它总是一个正方形
- python - lstm网络的准确性
- mongodb - 如果以 /data/db 卷启动,Docker mongo-express 无法连接到 mongo
- python - Run self._cr.execute on Compute Field
- javascript - 在焦点输出时关闭弹出/下拉菜单(键盘控制)
- wpf - ListView 的 ItemContainerStyle 阻止 GridView 上的列项绑定
- linux - 作业列表中失败的 Autosys 作业名称
- math - Proportion in cohorts vs overall proportion
- javascript - How to increase the microphone sample rate on problematic phones