ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python测试开发django-29.发送html格式邮件

2021-06-02 21:57:40  阅读:240  来源: 互联网

标签:views python 29 django 发送 html mail message 邮件


前言

上一篇已经通过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://www.icode9.com/i/l/?n=18&i=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://www.icode9.com/i/l/?n=18&i=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/后收到的邮件内容效果展示如下

标签:views,python,29,django,发送,html,mail,message,邮件
来源: https://blog.51cto.com/u_15249893/2848216

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

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

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

ICode9版权所有