我正在学习如何在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
帐户,这会是问题吗?
答案 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