Lia*_*nen 8 python email django gmail google-workspace
为什么 Google 认为我的 Django 应用程序通过 SMTP (smtp.gmail.com) 发送电子邮件的请求不安全?阅读他们的安全标准并没有多大帮助:
更安全的应用程序如何帮助保护您的帐户当第三方应用程序符合我们的安全标准时,您可以:
在连接您的 Google 帐户之前,查看您授予该应用的帐户访问权限级别 让该应用仅访问您 Google 帐户的相关部分,例如您的电子邮件或日历 将您的 Google 帐户连接到该应用,而不暴露您的密码 断开与 Google 的连接随时从应用程序帐户
从 Django 发送电子邮件时这是一个非常常见的问题。有教程和stackoverflow 问题/答案(第二个答案)可以通过更改 Google 帐户中的设置以允许安全性较低的应用程序来“解决”此问题。我已经完成了这项工作,并且对此感到满意,直到我从控制对不太安全的站点的访问中读到此内容:
由于 Google 开始关闭 Google 帐户对安全性较低的应用程序的访问权限,因此强制选项不再可用。我们建议立即关闭安全性较低的应用程序访问。您应该开始使用安全性较低的应用程序的替代品。
随着 Google 逐渐不再允许安全性较低的应用访问 Google 帐户,您将收到有关影响您的更改的电子邮件通知。
当我尝试搜索“如何通过 Google 确保 Django 安全”或“为什么 Django 对 Google 来说显示为不安全的应用程序”时,我看到的结果反映了更多相同的指导:只需翻转开关即可允许 Google 帐户上的不安全应用程序。我想知道为什么 Django 被认为是不安全的,这样也许我可以将其配置为安全的。
编辑:我还没有验证这些步骤使 Django 成为一个“更安全的应用程序”。在此之前,使用应用程序密码可以让我关闭“允许安全性较低的应用程序”。实施起来非常简单。
这并不是说 Django 不安全,可能是您使用 SMTP 发送电子邮件的方式不安全。启用 TLS 是首先要做的事情,也是使用 Google 的 SMTP 服务的要求:
EMAIL_USE_TLS = True
EMAIL_PORT = 587
Run Code Online (Sandbox Code Playgroud)
端口号取决于您使用的 SMTP 服务。587是标准,但也可能是别的东西。
亚马逊的SES(简单电子邮件服务,非免费)使这几乎透明。
此外,您还可以设置DMARC,它会提供有关设置有效性的反馈。
Django 有一个 DKIM 包:https://pypi.org/project/django-dkim/可以帮助您手动设置。
此外,还有一个适用于 Django 2 和 Python 3 的 DMARC 包:https://pypi.org/project/django-dmarc2/(我对原始包进行了一些修复,使其与 Django 2+ 兼容)
应在您的 DNS 上设置 SPF。
有了这个,应该可以确保您的电子邮件安全。
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |