为啥无法收到电子邮件(python、gmail、django)?

Posted

技术标签:

【中文标题】为啥无法收到电子邮件(python、gmail、django)?【英文标题】:Why can not get email message (python, gmail, django)?为什么无法收到电子邮件(python、gmail、django)? 【发布时间】:2020-01-23 09:02:48 【问题描述】:

全部。在 django 中发送电子邮件时遇到问题。 在我的设置中有下一个。py

EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_HOST_USER = 'xxx@gmail.com'

尝试从 django.core.mail 调用函数 send_mail

 send_mail('Subject here', 'Here is the message.', settings.EMAIL_HOST_USER,
           ['yyyy@coin-host.net', ], fail_silently=False)

有下一个输出:

内容类型:文本/纯文本;字符集="utf-8" MIME 版本:1.0 内容传输编码:7bit 主题:主题在这里 发件人:xxxx@gmail.com 至:yyyy@coin-host.net 日期:2019 年 9 月 23 日星期一 09:57:10 -0000 消息 ID: 这是消息。

但我的邮件客户端中没有任何消息。也检查过垃圾邮件文件夹 - 它是空的。

【问题讨论】:

控制台上显示的输出? @Toan Quoc Ho Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Subject here From: xxxx@gmail.com To: yyyy@coin-host.net Date: Mon, 23 Sep 2019 09:57:10 -0000 Message-ID: <20190923095710.1383.3314> Here is the message. 如果它显示在您的控制台上,我担心某些代码已经覆盖了 EMAIL_BACKEND,EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'。确保没有这样的代码行 @Toan Quoc Ho ,是的,我在控制台输出的最后一行有很多“----” 我的意思是你应该确保EMAIL_BACKEND 不会被覆盖。确保它始终具有此值 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 【参考方案1】:

您的电子邮件显示在控制台中,因此您的EMAIL_BACKEND 似乎被django.core.mail.backends.console.EmailBackend 覆盖。 确保没有任何代码行覆盖您的EMAIL_BACKEND,并且EMAIL_BACKEND 设置的值始终为django.core.mail.backends.smtp.EmailBackend

希望有帮助!

【讨论】:

以上是关于为啥无法收到电子邮件(python、gmail、django)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Gmail 会阻止电子邮件中的 CSS?

为啥我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息?

无法使用 Gmail SMTP 设置在 Joomla 中发送电子邮件。收到 SMTP 服务器错误:需要 5.5.1 身份验证。如何解决这个问题?

是啥导致我的“test.txt”文件从 Python 发送到我的 gmail 帐户时,当我在我的电子邮件收件箱中收到它时,它会显示为“无标题”?

Gmail“无法附加空文件”

无法解码gmail中的特殊字符 - python 3.6