Django
邮件发送
3.多种发邮件类型:
a.一封邮件发多人:send_mail,多人在列表里指定
b.多封邮件发多人:send_mass_mail,多套放在元组里
c.邮件中添加其他类型的内容:EmailMultiAlternatives、attach_alternative、send,制定了其他格式内容,原内容会被覆盖
4.综合案例:通过httpie等接口测试工具,post传递发邮件所需要的数据,并对逻辑做了处理,httpie默认传递json格式的数据,需要先解析成普通python基本数据类型,再进行操作(可用django自带的json loads dumps,也可用django框架restframework的parsers的JSONParser),导入的BadHeaderError用在请求数据有误时抛出无效的请求头 异常
源代码
一发多
def test01(request): # 一封邮件多发
send_mail(
'这里是标题',
'内容:天青色等烟雨',
fail_silently=False,
)
return HttpResponse('OK')
多发多
def test02(request):
datatuple = (
send_mass_mail(datatuple,fail_silently=False)
return HttpResponse('OVER')
定制
def test03(request):
text_content = '红尘客栈'
html_content = '红尘客栈风似刀,骤雨落宿命敲'
msg = EmailMultiAlternatives(subject,text_content,from_email,to)
msg.attach_alternative(html_content,'text/html')
msg.send()
return HttpResponse('html OVER')
综合
def sendmail(request):
#用httpie测试接口时,默认传递过来的时json数据,所以需要先解析成python基本数据类型,再操作
if request.method == 'POST':
data = JSONParser().parse(request)
subject = data.get('subject','')
message = data.get('message','')
from_email = data.get('from_email','')
if subject and message and from_email:
try:
except BadHeaderError:
return HttpResponse('Invalid header found.')
return HttpResponse('success OVER')
else:
return HttpResponse('Make sure all fields are entered and valid.')
return HttpResponse('GETGET')
每天用心点
will be better
END
☺喜欢请在下方点赞吧!
领取专属 10元无门槛券
私享最新 技术干货