django send_email()显示成功但没有收到电子邮件

时间:2015-01-21 18:20:33

标签: django smtp django-email

我正在学习如何在Djgnao发送电子邮件。我已经配置了

# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<my username>@gmail.com'
EMAIL_HOST_PASSWORD = '<my password>'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

并在django shell我尝试向自己(以及我的朋友)发送电子邮件

>>> from django.core.mail import send_mail
>>> send_mail('Subject here', 'Here is the message.', "<my username>@gmail.com", ["<my username>@gmail.com"])

并返回看起来成功的结果

MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Subject: Subject here
From: <my username>@gmail.com
To: <my username>@gmail.com
Date: Wed, 21 Jan 2015 17:55:20 -0000
Message-ID: <20150121175520.31612.19817@<my username>>

Here is the message.
---------------------------------------------------------------------
1

但是查看我的电子邮件和我朋友的电子邮件收件箱后,没有收到此类电子邮件。

我误解了什么吗?或者我是否需要对我的Gmail帐户执行某些操作?


实际上,我尝试了https://support.google.com/a/answer/182076?hl=en中的[登录管理控制台],但我被重定向到了#34;重新输入密码&#34;页面和&#34;选择一个帐户或添加一个新帐户&#34;页。我正在尝试我的免费,普通的个人Google帐户,这会是问题吗?

1 个答案:

答案 0 :(得分:3)

问题是,您的设置是

EMAIL_BACKEND = django.core.mail.backends.console.EmailBackend

这意味着email message prints to console

  

控制台后端只是编写将发送到标准输出的电子邮件,而不是发送真实的电子邮件。默认情况下,控制台后端会写入stdout。通过在构造连接时提供stream关键字参数,可以使用不同的类似对象。

将其更改为

EMAIL_BACKEND = django.core.mail.backends.smtp.EmailBackend

让SMTP工作。这是relevant documentation