当我使用非 gmail smtp 服务器通过 django 发送电子邮件时,我收到了 Google SMTPAuthenticationError,即使我不使用 smtp.gmail.com

问题描述

我正在运行一个用 django 制作的网站。本网站设有联系表格,您提交后,您和管理员都会收到一封电子邮件

message = render_to_string('email/contact_us_message.txt',context)
send_async_mail.delay(_('subject'),message,settings.DEFAULT_FROM_EMAIL,[contact.email])
message_for_admin = render_to_string('email/contact_us_message_for_admin.txt',message_for_admin,[settings.ADMIN_EMAIL])

我曾经订阅 gsuite 并使用那个 smtp 服务器。发送和接收电子邮件没有问题。

两天前我决定使用另一个电子邮件托管服务,所以我修改了我的 dns 记录,取消了 gsuite 并删除了我的帐户。

新的电子邮件托管服务在本地环境中运行良好。但是,在生产中,有时无法发送电子邮件。当我查看 celery 结果的任务结果时,它显示 535,“b'5.7.8 用户名密码不被接受”。我了解连接到谷歌服务时会显示错误消息。例如,未设置应用程序密码。但我不再使用 smtp.gmail.com 或与 google 相关的服务。

EMAIL_URL=smtp+tls://[email protected]:[email protected]:587

所以我不明白为什么会收到此错误消息。由于我更改了 dns 记录并且已经有一段时间了,我是否收到此与 smtp.gmail.com 相关的错误?如果我等待并且 dns 缓存将被更新,错误会消失吗?

解决方法

如果电子邮件在本地环境中运行并且服务器上出现彻底错误,那么首先您需要打开电子邮件帐户上的 less secure app。其次,您需要验证是您从服务器发送电子邮件,而不是某个恶意用户。