邮件协议
django 配置
django需要使用第三方的邮件服务器,发送邮件
具体步骤:
- 授权一个邮箱账号
- 配置settings.py
#settings.py
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend",
EMAIL_HOST = "smtp.qq.com",
EMAIL_PORT = 25,
EMAIL_HOST_USER = "xx@qq.com",
EMAIL_HOST_PASSWORD = "授权码",
EMAIL_USE_TLS = False #是否启用TLS安全链接
注意:以上有错误,自己曾经犯下的错–不应逗号
- 在视图中发送邮件
from django.core.mail import send_mail
def mail_view(request):
send_mail(subject,content,from_addr,receive_addr_list)
#subject 邮件的主题
#content 邮件的内容
#from_addr 发送地址 ”xxx“
#receive_addr_list ["xx","xxx",]
添加附件的邮件
from django.core.mail import EmailMessage
msg = EmailMessage(subject,content,from_,to_list)
msg.attach_file(path) #文件的绝对路径
try:
msg.send(fail_silently=False) #发送失败,抛出异常
except:
return HttpResponse("发送失败")
return HttpResponse("xxx")
实战代码
使用中间件,抓取视图的异常信息,发送邮件给指定人
主题:”视图异常告警“
内容:异常信息字符串(捕获异常后,使用traceback模块 info = traceback.format_exc())
收件人可灵活配置,–settings.py
send_mail(“异常”, info, ‘from’, [‘receive1’,‘receive2’, ])
碰到的问题:
解决:
查看源码,逐次打印
settings.py 中 末尾不能有–逗号
代码
提取码:ziq6
返回邮件发送成功的条数