ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

27.-Django发送邮件

2022-01-12 13:04:04  阅读:196  来源: 互联网

标签:协议 27 .- SMTP Django 邮箱 com EMAIL 邮件


一、邮件相关协议-SMTP SMTP全称是Simple Mail Transfer Protocol,即简单邮件传输协议(25端口号) 它是由一组从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转 属于推送协议,负责邮件的发送   二、邮件相关协议-IMAP IMAP全称是 Internet Mail Access Protocol 即交互式邮件访问协议,.是一个应用层协议(端口143) 用了从本地邮件客户端(Outlook Express、Foxmail、Mozilla、Thunderbird) 访问远程服务器上的邮件 属于拉取协议,负责邮件的接收   三、邮件相关协议-POP3 POP3是Post Office Protocol3的简称,即邮局协议的第三个版本,是TCP/IP协议族中的一员(默认端口110) 本协议主要用于支持使用客户端远程管理服务器上的电子邮件 属于拉取协议,负责邮件的接收   四、IMAP和POP3 两者均为拉取型协议,负责从邮件服务器中下载邮件 IMAP具备摘要浏览功能,可预览部分摘要,再下载整个邮件 IMAP为双向协议,客户端操作可反馈给服务器   POP3必须下载全部邮件,无摘要功能 POP3为单向协议,客户端操作无法同步服务器   五、邮件传输过程   六、Django发邮件 Django中配置邮件功能,主要为SMTP协议,负责发邮件 原理: 给Django授权一个邮箱 Django用该邮箱给对应接收人发送邮件 django.core.mail封装了电子邮件自动发送SMTP协议   授权步骤: 1.进入任意品牌的邮箱,设置里面开启SMTP服务 2.保存该邮箱的授权码 3.settings.py进行邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  # Django邮件引擎
EMAIL_HOST = 'smtp.xx.com'  # 对应邮箱SMTP服务器地址,例如smtp.qq.com / smtp.163.com等
EMAIL_PORT = 25  # SMTP服务端口号
EMAIL_HOST_USER = 'xxxx@xx.com'  # 发送邮件等邮箱,例如 test@163.com
EMAIL_HOST_PASSWORD = '******'  # 对应邮箱设置里面获得的授权码
EMAIL_USE_TLS = False # 与SMTP服务器通信时,是否启动TLS链接(安全链接),默认False

 

函数调用
from django.core import mail

mail.send_mail(
    subject='title',  # 邮件标题
    message='connect',  # 邮件内容
    from_email='my_email@163.com',  # 发送者[当前配置邮箱]
    recipient_list=['xxx@xx.com'],  # 接收者邮件列表
)

 

  六、邮件告警 用中间件实现抓取视图函数异常,并以邮件的形式将异常信息发送给指定联系人  
#settings.py
EX_EMAIL = ['xxx@qq.com'] #可以在settings中自定义一个邮件列表,可灵活配置

 

 
#中间件
import traceback
from django.core import mail
from django.conf import settings


class ExceptionMW(MiddlewareMixin):
    def process_exception(self, request, exception):
        mail.send_mail(
            subject='server_error',  # 邮件标题 / 报错的函数名
            message=traceback.format_exc(),  # 报错信息
            from_email='my_email@163.com',  # 发送者[当前配置邮箱]
            recipient_list=settings.EX_EMAIL,  # 接收者邮件列表
        )

        return HttpResponse('error')

 

  七、邮件告警错误追溯信息 当正式服务器上代码运行有报错时候,可将错误追溯信息发至指定邮箱 settings.py中-在基础邮箱授权后,添加配置
#关闭调试模式
DEBUG = False

#错误报告接收方
ADMINS = [('username','email@qq.com'),('username','email@qq.com')] #接收人名字/邮件地址

#发送错误报告方,默认为root@localhost账户,多数邮件服务器会拒绝,需要修改成配置的邮箱
SERVER_EMAIL = 'email配置中的邮箱'

 

过滤敏感信息 报错邮件会显示一些错误的追踪,可能出现一些敏感信息,用户自定义的视图函数需要手动过滤敏感信息   可过滤如下信息: 局部变量 post提交数据
#过滤局部变量

from django.views.decorators.debug import sensitive_variables

@sensitive_variables('','') #参数为要过滤的变量,会替换成****
def xxx():
    ...
    
#多个装饰器时,需要将sensitive_variables放在最顶部
#若不传参数,则过滤所有局部变量的值
#过滤post请求
from django.views.decorators.debug import sensitive_post_parameters
@sensitive_post_parameters('','') #要过滤的参数会替换成****
def xxx():
    ...

 

   

标签:协议,27,.-,SMTP,Django,邮箱,com,EMAIL,邮件
来源: https://www.cnblogs.com/Mickey-7/p/15792121.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有