Django-29 Django发送邮件

邮件相关协议 - 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为单向协议,客户端操作无法同步服务器
image.png

用谁的邮箱,谁就会给你提供一个邮箱服务器,用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'],#接受者邮件列表
)

应用:通过中间件实时抓取视图函数的异常发送到邮件

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容