首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过Django发送电子邮件?

如何通过Django发送电子邮件?
EN

Stack Overflow用户
提问于 2011-06-16 12:11:13
回答 14查看 196.3K关注 0票数 169

在我的settings.py中,我有以下内容:

代码语言:javascript
复制
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# Host for sending e-mail.
EMAIL_HOST = 'localhost'

# Port for sending e-mail.
EMAIL_PORT = 1025

# Optional SMTP authentication information for EMAIL_HOST.
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False

我的邮箱代码:

代码语言:javascript
复制
from django.core.mail import EmailMessage
email = EmailMessage('Hello', 'World', to=['user@gmail.com'])
email.send()

当然,如果我通过python -m smtpd -n -c DebuggingServer localhost:1025设置调试服务器,我可以在我的终端中看到电子邮件。

但是,我如何将电子邮件发送到user@gmail.com而不是调试服务器呢?

读完你的答案后,让我直截了当地说:

  1. 你不能使用本地主机(简单的ubuntu pc)来发送电子邮件吗?
  2. 我认为在django 1.3中send_mail()有些过时,取而代之的是EmailMessage.send()
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-06-16 12:12:59

将电子邮件发送到真实的SMTP服务器。如果你不想建立自己的网站,那么你可以找一些公司为你运营一个网站,比如谷歌自己。

票数 60
EN

Stack Overflow用户

发布于 2011-06-16 13:24:07

我使用Gmail作为Django的SMTP服务器。比处理postfix或任何其他服务器要容易得多。我不从事管理电子邮件服务器的业务。

在settings.py中:

代码语言:javascript
复制
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'me@gmail.com'
EMAIL_HOST_PASSWORD = 'password'

NOTE:在2016年,Gmail默认情况下不再允许这样做。你可以使用像Sendgrid这样的外部服务,也可以按照谷歌的教程来降低安全性,但允许这样的选择:https://support.google.com/accounts/answer/6010255

票数 175
EN

Stack Overflow用户

发布于 2015-01-01 00:07:51

使用以下代码创建一个项目:django-admin.py startproject gmail

  • Edit

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend‘EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com’EMAIL_HOST_USER = 'youremail@gmail.com‘EMAIL_HOST_PASSWORD = 'email_password’EMAIL_PORT =587

  • 运行交互模式:email_password

EmailMessage模块:

从EmailMessage

  • Send django.core.mail导入电子邮件:

电子邮件= email.send() (‘Subject’,'Body',to=‘EmailMessage@email.com’)电子邮件

有关详细信息,请查看documents中的send_mailEmailMessage功能。

Gmail的更新

此外,如果你在通过gmail发送电子邮件时遇到问题,记得去谷歌的this guides上查看。

在你的谷歌账户设置中,转到Security > Account permissions > Access for less secure apps并启用此选项。

在你有了turned on 之后,也可以使用create an App specific password for your gmail

然后你应该在设置中使用应用程序特定的密码。因此,请更改以下行:

代码语言:javascript
复制
    EMAIL_HOST_PASSWORD = 'your_email_app_specific_password'

此外,如果你有兴趣发送超文本标记语言的电子邮件,check this out

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6367014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档