发送图文并茂的html格式的邮件

这篇具有很好参考价值的文章主要介绍了发送图文并茂的html格式的邮件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文介绍如何生成和发送包含图表和表格的邮件,涉及echarts图表转换为图片、图片内嵌到html邮件内容中、html邮件内容生成、邮件发送方法等

一、图表处理

因为html格式的邮件不支持echarts,也不支持js执行,所以图表需要转换为图片内嵌在邮件内容中
因为平台首页相关统计都是使用echarts渲染展示,为了减少后端接口兼容的工作量,我们使用pyecharts替代,这样就可以使用同样的数据结构和后端接口
pyecharts是python版本的echarts,配置项与echarts基本一致,具体使用方法可以参考官网 https://pyecharts.org/#/zh-cn/chart_api
我们实现的具体代码如下:
发送图文并茂的html格式的邮件
返回是图片的本地绝对路径

需要注意的是,pyecharts render之后生成的是html文件,是通过make_snapshot函数将html转换为图片
1、需要安装库:pyecharts + snapshot_selenium或者snapshot_phantomjs
2、make_snapshot第一个参数是转换引擎,可以使用snapshot_selenium 或者 snapshot_phantomjs
发送图文并茂的html格式的邮件
(1)如果使用snapshot_phantomjs,则需要使用npm安装phantomjs(linux环境同理)
(2)如果使用snapshot_selenium,则需要将浏览器驱动放到python路径下,比如我使用google浏览器,则下载对应版本的驱动chromedriver.exe,放在python.exe所在目录下(linux环境同理)
发送图文并茂的html格式的邮件

二、邮件内容生成

邮件内容最终是html格式,需要将图片和表格等数据全部填充好之后再发送
1、创建模板,需要根据数据实时填充的使用{{xxx}}标识
比如我的周报模板:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>专项检测周报</title>
</head>
<body>
<h2 style="font_size:30">【{{busi_plat}}】风险总数为:{{risk_total}}</h2>
<hr style="border: none; border-top: 1px solid #ccc; height: 1px; margin: 20px 0;">
<div>
<table style="cellpadding:0;border: 0px solid #ccc;width:100%">
  <tr>
    <td align="center" valign="top">
      <a href="{{risk_level_pic_href}}">
        <img src="cid:{{risk_level_pic}}" width="720" height="400" alt="Image 1">
      </a>
    </td>
    <td align="center" valign="top">
      <a href="{{risk_status_pic_href}}">
        <img src="cid:{{risk_status_pic}}" width="720" height="400" alt="Image 2">
      </a>
    </td>

  </tr>
  <tr>
    <td align="center" valign="top">
      <a href="{{risk_busi_asc_pic_href}}">
        <img src="cid:{{risk_busi_asc_pic}}" width="720" height="400" alt="Image 1">
      </a>
    </td>
    <td align="center" valign="top">
      <a href="{{risk_check_tool_pic_href}}">
        <img src="cid:{{risk_check_tool_pic}}" width="720" height="400" alt="Image 2">
      </a>
    </td>
  </tr>
</table>
</div>
<div>
<hr style="border: none; border-top: 1px solid #ccc; height: 1px; margin: 10px 0;">
<h3 style="font_size:20">【风险类型汇总 TOP 10】</h3>
<table  width="100%" border="1" cellspacing="0" cellpadding="4">
<tr>
<th>序号</th>
<th>风险类型</th>
<th>发现工具</th>
<th>风险数量</th>
</tr>
{{risk_top_data}}
</table>
</div>
<div>

<hr style="border: none; border-top: 1px solid #ccc; height: 1px; margin: 10px 0;">
<h3 style="font_size:20">【军规汇总 TOP 10】</h3>
<table  width="100%" border="1" cellspacing="0" cellpadding="4">
<tr>
<th>序号</th>
<th>军规</th>
<th>发现工具</th>
<th>风险数量</th>
</tr>
{{army_top_data}}
</table>
</div>
<hr style="border: none; border-top: 1px solid #ccc; height: 1px; margin: 10px 0;">
<h3 style="font_size:20">【本周新增明细】</h3>
<a href="{{detail_href}}">按照风险等级排序,最多展示15条,更多详情和记录 点这里>>>></a>
<table  width="100%" border="1" cellspacing="0" cellpadding="4">
<tr>
<th>序号</th>
<th>业务方向</th>
<th>业务模块</th>
<th>发现工具</th>
<th>风险类型</th>
<th>风险明细</th>
<th>风险等级</th>
<th>状态</th>
<th>操作</th>
</tr>
{{detail_list_data}}
</table>
</body>
</html>

2、获取到统计数据之后,使用replace做替换,生成最终的html格式的邮件内容
发送图文并茂的html格式的邮件

三、发送邮件

在邮件内容中使用的图片需要作为附件一起发送,才能够在邮件中正常显示。
设置方法参考下图
发送图文并茂的html格式的邮件文章来源地址https://www.toymoban.com/news/detail-513686.html

到了这里,关于发送图文并茂的html格式的邮件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 线程池详解,图文并茂,还有谁不会?!

    来源:blog.csdn.net/mu_wind/article/details/113806680 我们知道,线程的创建和销毁都需要映射到操作系统,因此其代价是比较高昂的。出于避免频繁创建、销毁线程以及方便线程管理的需要,线程池应运而生。 降低资源消耗 :线程池通常会维护一些线程(数量为 corePoolSize),这些线

    2024年02月06日
    浏览(33)
  • 什么是感知机——图文并茂,由浅入深

    生活中常常伴随着各种各样的逻辑判断,比如看到远方天空中飘来乌云,打开手机看到天气预报说1小时后40%的概率下雨,此时时候我们常常会做出等会下雨,出门带伞的判断。 上述思考过程可以抽象为一个”与“的”神经逻辑“。当”看到乌云“和”天气预报40%下雨“同时

    2023年04月20日
    浏览(27)
  • Flutter 图文并茂:打造交互丰富的应用界面

    Flutter作为一种现代的UI工具包,为开发者提供了丰富的工具和小部件,轻松构建漂亮、响应迅速的应用界面。本篇博客将带你踏入Flutter的世界,学习如何巧妙运用图片、按钮、图标,以及行与列进行布局,打造令人惊艳的用户交互体验。 无论你是Flutter初学者还是有一定经验

    2024年02月03日
    浏览(27)
  • NodeMCU ESP8266开发流程详解(图文并茂)

    NodeMCU ESP8266基于Arduino IDE的开发相对来说还是比较容易上手的,我们基本需要以下几个东西; 一台安装好Arduino IDE的PC,并且已经部署环境(安装好开发板的串口驱动); NodeMCU ESP8266 开发板; USB线(根据实际开发板的情况,本文需要Micro-USB的线); 具体如下图所示; 本文默

    2024年02月06日
    浏览(38)
  • 最新阿里云服务器配置选择教程(图文并茂)

     很多第一次接触云服务器的新用户不知道怎么购买,每一步怎么操作,每个参数代表的是什么意思,怎么选择最好,那么下面这篇文章将详细介绍选购阿里云服务器的每个步骤,希望可以帮助到你! 进入阿里云官网:https://www.aliyun.com 点击立即注册 可以选择支付宝扫码登陆

    2024年02月02日
    浏览(34)
  • 总线仿真与测试工具CANoe介绍(图文并茂)

    CANoe是德国Vector公司的一款用于开发、测试和分析单个ECU和整个ECU网络的综合性工具,包括 软件 和 硬件 。它在整个开发过程中为网络设计者、开发和测试工程师提供支持:从规划到系统级测试。由于其多种变体和功能能够对不同的项目提供支持,被全球OEM和供应商广泛使用

    2024年02月01日
    浏览(30)
  • NodeMCU ESP8266 GPIO使用详解(图文并茂)

    前面的文章中我们已经学习了如何点亮一个LED灯,在嵌入式的世界里,这个相当于我们初学一门编程语言,写下的Hello World程序。 为了让LED闪烁,我们需要操作芯片的GPIO,这是硬件最底层的概念,只不过 Arduino 的编程中,底层的库函数已经为我们做好了硬件的封装,只要调用

    2024年02月03日
    浏览(28)
  • kali Linux 安装教程(绝对简单清晰,图文并茂)

    基于 Debian 的Linux操作系统   Kali Linux是基于 Debian 的 Linux发行版 , 设计用于数字取证操作系统。每一季度更新一次。由 Offensive Security Ltd 维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。【百度

    2024年02月15日
    浏览(22)
  • Canvas鼠标滚轮缩放以及画布拖动(图文并茂版)

    本文会带大家认识Canvas中常用的坐标变换方法 translate 和 scale,并结合这两个方法,实现鼠标滚轮缩放以及画布拖动功能。 Canvas 绘图的缩放以及画布拖动主要通过 CanvasRenderingContext2D 提供的 translate 和 scale 两个方法实现的,先来认识下这两个方法。 translate 方法 语法: trans

    2023年04月09日
    浏览(35)
  • 【linux】图文并茂,让你轻松掌握Linux基本指令

    目录 一,前提 二, 在root身份下,管理用户 1.  whoami——判断身份  2. 创建用户 3. 销毁用户 三,文件增,删,移动指令  1. pwd——查看路径  2. ls ——打开当前目录  3. touch——创建文件  4. nano——打开文件  5. ls -l  ——以列表形式打印该目录下文件的属性​编辑  6. l

    2024年02月05日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包