如何为 SMTP 配置 Django 和 G Suite
Posted
技术标签:
【中文标题】如何为 SMTP 配置 Django 和 G Suite【英文标题】:How to configure Django and G Suite for SMTP 【发布时间】:2020-03-11 08:30:48 【问题描述】:当用户在我的网站上注册时,会向用户发送一封电子邮件以确认他/她的电子邮件。 它适用于以下设置:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'abcdefghiklmnopq'
EMAIL_PORT = 587
现在我想切换到 noreply@mydomain.com。 我在 G Suite 上创建了一个帐户并进行了以下配置:
综合邮件存储(本地应用) 发送和接收的邮件存储在关联用户的邮箱中:开
SMTP 中继服务(本地应用)ms_mail 允许发件人:仅限 我的域中的地址 仅接受来自指定 IP 的邮件 地址:否 需要 SMTP 身份验证:是 需要 TLS 加密: 是的
安全性较低的应用程序(本地应用)允许用户管理他们对安全性较低的应用程序的访问 不太安全的应用程序
允许安全性较低的应用:开启
比我创建了一个应用密码并尝试了很多这样的配置:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp-relay.gmail.com'
EMAIL_HOST_USER = 'noreply@mydomain.com'
EMAIL_HOST_PASSWORD = 'abcdefghiklmnopq'
DEFAULT_FROM_EMAIL = 'noreply@mydomain.com'
SERVER_EMAIL = 'noreply@mydomain.com'
EMAIL_PORT = 465
我在 Google 或 Django 上找不到关于如何配置设置的好文档。有人现在是一个很好的资源吗?应用程序密码/不太安全的应用程序是正确的方法吗?因为谷歌有一些安全警告。 Noreply 是一个组,但我为 my.name@mydomain.com 创建了应用程序密码。当我是小组的一员时,这是一个问题吗?我还用 my.name@mydomain.com 而不是 noreply@mydomain.com 尝试了几个选项,但我总是得到错误
smtplib.SMTPServerDisconnected: Connection unexpectedly closed
【问题讨论】:
【参考方案1】:在你的 settings.py 中使用它
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'noreply@mydomain.com'
EMAIL_HOST_PASSWORD = '#########'
EMAIL_PORT = 587
【讨论】:
不幸的是,这对我不起作用。有什么选择吗? @Marco 你遇到了什么类型的错误?以上是关于如何为 SMTP 配置 Django 和 G Suite的主要内容,如果未能解决你的问题,请参考以下文章
如何为 GTK3 配置 VSCode 以进行智能感知/构建/调试和 g++