Django 配置 qq 邮箱发送邮件
目录
一、实验环境
Python3.7 + Django2.1.3
二、获取QQ邮箱授权码
1、什么是授权码?
授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。
适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。
温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。
2、怎么获取授权码?
操作: 设置 ---> 帐户 ,按照以下流程操作。
(1)点击“生成授权码”
(2)验证密保
(3)获取授权码
三、Django中配置
setting.py中添加如下代码
# Host for sending email. EMAIL_HOST = 'smtp.qq.com' # 发送方的smtp服务器地址 # Port for sending email. EMAIL_PORT = 587 # smtp服务端口 # Optional SMTP authentication information for EMAIL_HOST. EMAIL_HOST_USER = 'you ' # 发送方 邮箱地址 EMAIL_HOST_PASSWORD = 'uzlbagwxizkfcfdf' # 获得的 授权码 EMAIL_USE_TLS = True # 必须为True EMAIL_USE_SSL = False EMAIL_SSL_CERTFILE = None EMAIL_SSL_KEYFILE = None EMAIL_TIMEOUT = None # Default email address to use for various automated correspondence from # the site managers. DEFAULT_FROM_EMAIL = 'you ' # 和 EMAIL_HOST_USER 相同
- 注意:
- 不添加授权码 报 SMTPAuthenticationError 错误 ,
文本邮件
send_email.py 代码如下:
import os from django.core.mail import send_mail os.environ['DJANGO_SETTINGS_MODULE'] = 'suosuo.settings' # 必须添加 , 依赖于 Django if __name__ == '__main__': res = send_mail( '来自www.liujiangblog.com的测试邮件', '欢迎访问www.cnblogs.com/shiwei1930,这里是SUOSUO博客站点,本站专注于Python、Django技术的分享!', 'you ', ['target '], ) print('res=', res) # 成功 返回 1 # 对于send_mail方法, # 第一个参数是邮件主题subject; # 第二个参数是邮件具体内容; # 第三个参数是邮件发送方, # 第四个参数是接受方的邮件地址列表, 需要和你settings中的一致;
HTML 邮件
send_email.py 代码如下:
import os from django.core.mail import EmailMultiAlternatives os.environ['DJANGO_SETTINGS_MODULE'] = 'suosuo.settings' if __name__ == '__main__': subject = '来自www.cnblogs.com/shiwei1930的测试邮件' from_email= 'you ' to = ['target '] text_content = '欢迎访问www.cnblogs.com/shiwei1930,这里是SUOSUO站点,专注于Python和Django技术的分享!' html_content = '<p>欢迎访问<a href="http://www.cnblogs.com/shiwei1930" target=blank>www.cnblogs.com/shiwei1930</a>,这里是SUOSUO站点,本站专注于Python、Django的分享!</p>' msg = EmailMultiAlternatives(subject, text_content, from_email, to) msg.attach_alternative(html_content, "text/html") msg.send() # 其中的text_content是用于当HTML内容无效时的替代txt文本。