在我的settings.py
中,我有以下内容:
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
我的邮箱代码:
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而不是调试服务器呢?
读完你的答案后,让我直截了当地说:
send_mail()
有些过时,取而代之的是EmailMessage.send()
?发布于 2011-06-16 12:12:59
将电子邮件发送到真实的SMTP服务器。如果你不想建立自己的网站,那么你可以找一些公司为你运营一个网站,比如谷歌自己。
发布于 2011-06-16 13:24:07
我使用Gmail作为Django的SMTP服务器。比处理postfix或任何其他服务器要容易得多。我不从事管理电子邮件服务器的业务。
在settings.py中:
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
发布于 2015-01-01 00:07:51
使用以下代码创建一个项目:django-admin.py startproject gmail
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
EmailMessage模块:
从EmailMessage
电子邮件= email.send() (‘Subject’,'Body',to=‘EmailMessage@email.com’)电子邮件
有关详细信息,请查看documents中的send_mail
和EmailMessage
功能。
Gmail的更新
此外,如果你在通过gmail发送电子邮件时遇到问题,记得去谷歌的this guides上查看。
在你的谷歌账户设置中,转到Security > Account permissions > Access for less secure apps
并启用此选项。
在你有了turned on 之后,也可以使用create an App specific password for your gmail。
然后你应该在设置中使用应用程序特定的密码。因此,请更改以下行:
EMAIL_HOST_PASSWORD = 'your_email_app_specific_password'
此外,如果你有兴趣发送超文本标记语言的电子邮件,check this out。
https://stackoverflow.com/questions/6367014
复制相似问题