前言

上一篇已经通过send_mail()函数发送纯文本的邮件,发送成功了,如果我们想发送一个html格式的邮件,如何实现呢?

发送html格式的邮件实际上还是调用send_mail()函数 ,只需多加一个html_message参数

html_message参数

从上一篇的send_mail()函数里面可以看出,里面有个参数html_message默认是为None,部分源码如下

mail = EmailMultiAlternatives(subject, message, from_email, recipient_list, connection=connection)
if html_message:
mail.attach_alternative(html_message, 'text/html')

当html_message参数不为空的时候,会调用EmailMultiAlternatives类里面的方法,发送html格式的文件

如我们需要发送的html内容如下

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>带图片的邮件</title>
</head>
<body>
<a href="https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b" target="_blank">
<p>pytest教程,点图片进入:<br>
<img src="https://img2018.cnblogs.com/blog/1070438/201902/1070438-20190228112918941-704279799.png" height="160" width="270" />
</p></a>
<p>
其它图片:<br>
<img src="http://www.w3school.com.cn/i/eg_chinarose.jpg" height=150 width=300/></p>
<p>请注意,插入动画图像的语法与插入普通图像的语法没有区别。</p>
</body>
</html>

在浏览器效果

views和urls.py

在views.py里面写个视图函数,调用发送邮件的功能

from django.http import HttpResponse
from django.core.mail import send_mail, send_mass_mail def mail_html(request):
'''发送html格式邮件'''
h = '''
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>带图片的邮件</title>
</head>
<body>
<a href="https://yuedu.baidu.com/ebook/902224ab27fff705cc1755270722192e4536582b" target="_blank">
<p>pytest教程,点图片进入:<br>
<img src="https://img2018.cnblogs.com/blog/1070438/201902/1070438-20190228112918941-704279799.png" height="160" width="270" />
</p></a>
<p>
其它图片:<br>
<img src="http://www.w3school.com.cn/i/eg_chinarose.jpg" height=150 width=300/></p>
<p>请注意,插入动画图像的语法与插入普通图像的语法没有区别。</p>
</body>
</html>
'''
send_mail('Subject here', # 主题
'hell', # 正文
'2833404xx@qq.com', # 发件人
['xxx@xx.com'], # 收件人
fail_silently=False,
html_message=h) # html邮件
return HttpResponse('邮件发送成功,收不到就去垃圾箱找找吧!')

urls.py写个访问地址触发发邮件

from django.conf.urls import url
from hello import views urlpatterns = [
# 新增用户
url(r'^register/', views.register),
url(r'^login/', views.login),
url(r'^reset/', views.reset_psw),
url(r'^mail/', views.mail),
url(r'^mail_html/', views.mail_html),
]

访问http://localhost:8000/mail_html/后收到的邮件内容效果展示如下

python测试开发django-29.发送html格式邮件的更多相关文章

  1. python测试开发django-50.jquery发送ajax请求(get)

    前言 有时候,我们希望点击页面上的某个按钮后,不刷新整个页面,给后台发送一个请求过去,请求到数据后填充到html上,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.Ajax可以完美的 ...

  2. python测试开发django-51.Ajax发送post请求登录案例

    前言 我想实现一个登录功能:登录的接口是另外一个地方提供,页面上点登录按钮的时候,先访问登录接口,根据接口返回json信息判断是否登录成功,登录成功页面跳转,登录不成功,在登录首页显示失败原因 登录页 ...

  3. python测试开发django-16.JsonResponse返回中文编码问题

    前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面 ...

  4. python测试开发django-15.查询结果转json(serializers)

    前言 django查询数据库返回的是可迭代的queryset序列,如果不太习惯这种数据的话,可以用serializers方法转成json数据,更直观 返回json数据,需要用到JsonResponse ...

  5. python测试开发django-36.一对一(OneToOneField)关系查询

    前言 前面一篇在xadmin后台一个页面显示2个关联表(OneToOneField)的字段,使用inlines内联显示.本篇继续学习一对一(OneToOneField)关系的查询. 上一篇list_d ...

  6. 【SoapUI、Postman、WebServiceStudio、Jmeter】接口测试工具结合测试webservice接口(发送XML格式参数)

    目录: SoapUI测试webservice接口,发送XML格式参数 Postman测试webservice接口,发送XML格式参数 WebServiceStudio.exe测试webservice接 ...

  7. 【python测试开发栈】python基础语法大盘点

    周边很多同学在用python,但是偶尔会发现有人对python的基础语法还不是特别了解,所以帮大家梳理了python的基础语法(文中的介绍以python3为例).如果你已然是python大牛,可以跳过 ...

  8. 2019第一期《python测试开发》课程,10月13号开学

    2019第一期<python测试开发>课程,10月13号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:10月13号-12月8号,每周六.周日晚上20: ...

  9. python测试开发django-rest-framework-63.基于函数的视图(@api_view())

    前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...

随机推荐

  1. wpf 如果列表加载超多数据变的卡顿时,使用VirtualizingStackPanel

    如果列表加载超多数据变的卡顿时 <ListBox > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Virt ...

  2. (五)消费Dubbo服务

    前面我们搞了发布Dubbo服务,发布的服务就是用来消费的,所以我们这里来调用服务,消费下: 创建maven项目 dubbo-demo-consumer pom.xml配置下: <dependen ...

  3. TFC2017 腾讯Web前端大会参会小结

    简述 上周有幸参加TFC腾讯Web前端大会,见识了各路前端大神的精彩演讲,干货满满的.会议流程分为上午主会场,以及下午的三个分会场.分享的主题涵盖Web新技术.Node.js.框架.工程化. 图形处理 ...

  4. 023 Hadoop的生态系统

    1.数据来源 RDBM:sqoop 日志文件:flume 2.zookeeper 多台机器保持同步数据. 3.hive sql语句的查询 HQL转换成mapreduce SQL On Hadoop 4 ...

  5. Google浏览器被360劫持

    最新更新!!! 新写的一个 Chrome浏览器被hao123劫持:    http://www.cnblogs.com/tanrong/p/7815494.html 这两个博客结合着看吧,它们几乎包括 ...

  6. jupyter安装,修改登录密码,启动

    jupyter安装,修改登录密码,启动     1.安装jupyter: pip install jupyter     (如果报错) pip install jupyter notebook   2 ...

  7. 数据库相关--mysql中的单表查询

    一.完整的单表查询语句 select [distinct] *|字段1,字段2, .... from 表名 [where 条件1] [group by 字段名 [having 条件2] ] [orde ...

  8. 十个问题带你了解和掌握java HashMap

    十个问题带你了解和掌握java HashMap 一.前言 本篇内容是源于 " 由阿里巴巴Java开发规约HashMap条目引发的故事",并在此基础上加了自己的对HashMap更多的 ...

  9. Chart.js Y轴数据以百分比展示

    新手一枚,解决的问题喜欢记录,也许正好有人在网上迷茫的百度着.-0- 最近使用Chart.js做折线图的报表展示,直接显示整数啥的很好弄毕竟例子直接在哪里可以用,百分比就没办法了.百度慢慢汲取营养,虽 ...

  10. 关于XML解析中的CDATA的简单介绍

    所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA PCDATA 指的是被解析的字符数据(Parsed Chara ...