Django-29 Django发送邮件
2021-08-03 本文已影响0人
JuliusL
邮件相关协议 - SMTP
- SMTP的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议(25号端口)
- 它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转
- 属于“推送”协议
邮件相关协议 - IMAP
- IMAP全称是“Internet Mail Access Protocal”,即交互式邮件访问协议,是一个应用层协议(端口是143)。
- 用来从本地邮件客户端(Outlook Express、Foxmail、Mozilla Thunderbird等)访问远程服务器上的邮件。
- 属于拉取协议
邮件相关协议 - POP3
- POP3是Post Office
- POP3是Post Office Protocol 3 的简称,即邮局协议的第3个版本,是TCP/IP协议中的一员(默认端口是110)
- 本协议主要用于支持使用客户端远程管理在服务器上的电子邮件
- 属于“拉取”协议
IMAP VS POP3
两者均为“拉取”型协议,负责从邮件服务器中下载邮件
- IMAP具备摘要浏览功能,可预览部分摘要,再下载整个文件
- IMAP为双向协议,客户端操作可反馈给服务器
- POP3必须下载全部邮件,无摘要功能
- POP3为单向协议,客户端操作无法同步服务器
用谁的邮箱,谁就会给你提供一个邮箱服务器,用QQ发邮件,QQ就会给你提供一个邮局,发送一个邮件,QQ就会用SMTP跟新浪服务器进行交互,把邮件同步给新浪的邮箱服务器
Django发邮件
- Django中配置邮件功能,主要为SMTP协议,负责发邮件
- 原理:
- 给Django授权一个邮箱
- Django用该邮箱给对应收件人发送邮件
- django.core.mail 封装了电子邮件的自动发送SMTP协议
邮件相关配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com' # 腾讯QQ邮箱 SMTP 服务器地址
EMAIL_POST = 25 #SMTP服务的端口号
EMAIL_HOST_USER = ‘xxxx@qq.com’ #发送邮件的QQ邮箱
EMAIL_HOST_PASSWORD = ‘*******’ #在QQ邮箱->设置->账户->“POP3/IMAP...服务”里得到的在第三方登录QQ邮箱授权码
EMAIL_USE_TLS = False #与SMTP服务器通信时,是否启动TLS链接(安全链接)默认False
函数调用
from django.core import mail
mail.send_mail(
subject,#标题
message,#消息内容
from_email,#发送者[当前配置邮箱]
recipient_list=['xxx@qq.com'],#接受者邮件列表
)