邮件发送,正文内容格式h5,模板字符串拼接使用及赋值,原生js

news2024/11/26 4:30:44

一、邮件发送
需求不难,传指定的参数给后端,调接口就直接发送了
就是参数里有个正文部分,一定要用h5写

写vue写习惯了,原生的都快忘光了,走了些弯路

二、h5
在页面上有个邮件发送的按钮,点击按钮打开弹窗,是一个仿邮箱发送的界面,类似如下:

在这里插入图片描述
红圈圈起来的部分都要用h5写
也就是说在vue这个单文件里,模板区可以正常用element画,但是给后端的得是h5

我自己是保持一致,两边都是一样的,也方便直接复用

三、模板字符串的处理

正文里有个表格,这个也不难画,div排列布局就可以了
主要说的是如何循环处理数据,以及input如何绑值,以及拼接

在确认发送这个按钮里处理数据
先定义个变量,用来处理循环出来的字符串,数组可以是后端给的 ,也可以是自己定义的,我这里因为表格的字段名都是固定的,所以我写死了,可以参考下,因为列表是一行四格,即a,a的值,b,b的值

模板字符串里有${}包裹的才是变量,不然都是字段串
所以要这样写才行 ${item.leftname}

    this.emailTable = [
        {
          leftname: 'A字段',
          rightname: 'B字段',
          leftValue: this.form.A,
          rightValue: this.form.B,
        },
        {
          leftname: 'C字段',
          rightname: 'D字段',
          leftValue: this.form.C,
          rightValue: this.form.D,
        },
        ]
 var info = ''
   this.emailTable.forEach(function (item) {
        info += ` <div style="display: flex">
                  <div
                    style="
                      height: 30px;
                      width: 140px;
                      line-height: 30px;
                      border-right: 1px solid #333;
                      border-bottom: 1px solid #333;
                      border-left: 1px solid #333;
                    "
                  >
                    <span style="padding-left: 5px">${item.leftname}</span>
                  </div>
                  <div style="height: 30px; line-height: 30px; border-right: 1px solid #333; border-bottom: 1px solid #333">
                    <input
                      type="text"
                      value="${item.leftValue}"
                      style="width: 140px; border: none; outline: none; font-size: 18px; font-weight: 500"
                      autocomplete="off"
                    />
                  </div>
                  <div style="height: 30px; width: 140px; line-height: 30px; border-right: 1px solid #333; border-bottom: 1px solid #333">
                    <span style="padding-left: 5px">${item.rightname}</span>
                  </div>
                  <div style="height: 30px; line-height: 30px; border-bottom: 1px solid #333; border-right: 1px solid #333">
                    <input
                      type="text"
                      value="${item.rightValue}"
                      style="width: 280px; border: none; outline: none; font-size: 18px; font-weight: 500"
                      autocomplete="off"
                    />
                  </div>

                </div>`
      })

不管有多少要循环处理的数据,都像上面这个格式来就行
然后定义一个变量,将全部的内容以模板字符串的格式处理

  let body = ` 
      <div >
            <p>
              <span style="font-size: 18px; font-weight: 500">Dear</span>
              <input
                type="text"
                id="nickName"
               value="${this.form.nickname}"
                style="border: none; outline: none; font-size: 18px; font-weight: 500"
                autocomplete="off"
              />
            </p>

            <p style="font-size: 18px; font-weight: 500">tks</p>
            <div style="color: #333; width: 700px">
              <div style="height: 30px; text-align: center; line-height: 30px; border: 1px solid #333">
                <span style="font-size: 20px; font-weight: 700">Loading</span>
              </div>
              <div style="height: 30px; text-align: left; line-height: 30px; border: 1px solid #333; border-top: none">
                <span style="padding-left: 5px">To:</span>
              </div>
            ${info}                                                
            <div style="display: flex">
            ${containHead}
            </div>           
           ${containBody}
            </div>
            <p style="font-size: 18px; font-weight: 500">Thank you very much!</p>       
          </div>`

然后将body作为参数传到接口里,参数格式会是下面这样
在这里插入图片描述
然后邮件里收到的内容,如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10分钟搞定win11安卓子系统

10分钟搞定win11安卓子系统Android子系统的要求一、安装 Windows 虚拟化支持二、Win11 正式版安装安卓子系统方法教程 (离线包安装)三、在Win11 安卓子系统安装 APK 软件包教程Windows 11 WSA 安装 APK 方法&#xff1a;Windows 11上成功运行安卓APP安装国内的 Android 应用商店…

windows系统无法保存文件的解决方案

❤关注我&#xff0c;不迷路❤ 点击进入PC常见故障汇总专栏 近期收到部分反馈&#xff0c;在windows的电脑上保存一个文件的时候&#xff08;另存为&#xff09;&#xff0c;选择完目标文件夹后无法保存&#xff0c;点击系统的保存按钮&#xff08;有些系统展示为打开按钮&…

2023最新谷粒商城笔记之订单服务篇(全文总共13万字,超详细)

订单服务 页面环境搭建 配置动静环境 在服务器的mydata/nginx/html/static 路径下创建一个 order 文件夹&#xff0c;在order路径下分别创建以下几个文件夹&#xff0c;用来存放对应的静态资源 detail 文件夹下存放 等待付款的静态资源&#xff0c; 并将等待付款文件夹下的页…

DC-4 靶场学习

信息搜集&#xff1a; 首先获取靶场ip&#xff0c;和之前一样。 arp-scan -l nmap -sP 192.168.28.0/24然后访问。 发现需要登录。 漏洞分析: 直接用bp爆破&#xff0c;爆破出来密码为happy&#xff0c;登录。 发现执行了命令&#xff0c;抓包。 修改命令可以执行&#xff…

客户案例|FPGA研发管理解决方案:UniPro瀑布+敏捷 打造高效能组织

2023开年以来&#xff0c;新享科技项目管理软件UniPro收获一波客户侧的点赞好评。在过去一年中&#xff0c;UniPro不断与客户保持高频沟通&#xff0c;满足客户需求为出发点&#xff0c;以产品功能实现为落脚点&#xff0c;不断打磨产品。 以UniPro客户京微齐力为例&#xff0…

Vulnhub靶场----9、DC-9

文章目录一、环境搭建二、渗透流程三、思路总结一、环境搭建 DC-9下载地址&#xff1a;https://download.vulnhub.com/dc/DC-9.zip kali&#xff1a;192.168.144.148 DC-9&#xff1a;192.168.144.158 二、渗透流程 1、信息收集nmap -T5 -A -p- -sV -sT 192.168.144.158思路&am…

IDEA Android 网格布局(GridLayout)示例(计算器界面布局)

网格布局(GridLayout&#xff09; 示例程序效果&#xff08;实现类似vivo手机自带计算器UI&#xff09; 真机和模拟器运行效果&#xff1a; 简述&#xff1a; GridLayout(网格布局)和TableLayout&#xff08;表格布局&#xff09;有类似的地方&#xff0c;通俗来讲可以理解为…

搜广推 Product-based Neural Networks (PNN) - 改进特征交叉的方式

😄 PNN:2016年上海交通大学提出。 文章目录 1、PNN1.1、原理1.2、创新点:product层1.3、product层z部分的输出:l~z~ 的计算方式:1.4、product层z部分的输出:l~p~ 的计算方式:1.4.1、IPNN1.4.2、OPNN1.5、优点1.6、缺点Reference1、PNN PNN:Product-based Neural Netwo…

Spark 故障排除

1 故障排除一&#xff1a;控制reduce端缓冲大小以避免OOM 在Shuffle过程&#xff0c;reduce端task并不是等到map端task将其数据全部写入磁盘后再去拉取&#xff0c;而是map端写一点数据&#xff0c;reduce端task就会拉取一小部分数据&#xff0c;然后立即进行后面的聚合、算子…

colletions学习和链式调用,以及优雅的展示代码

1&#xff0c;python 中尽量减少缩进可以直接 if code ! 1: return {msg:2003} 继续写下面的逻辑 2&#xff0c;关于&#xff08;1&#xff09;&#xff0c;&#xff08;1&#xff0c;&#xff09;区别 &#xff08;1&#xff09;表示直接计算运行 &#xff08;1*2*345&a…

Leetcode.2359 找到离给定两个节点最近的节点

题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating &#xff1a; 1715 题目描述 给你一个 n个节点的 有向图 &#xff0c;节点编号为 0到 n - 1&#xff0c;每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示&#xff0c;表示节点 i有一条…

数字档案室测评的些许感悟

我是甲方&#xff0c;明明我家是档案“室”&#xff0c;为什么申请的是数字档案“馆”&#xff1f; 笔者正对着手里的一份方案苦笑&#xff0c;甲方爸爸是某机关单位档案室&#xff0c;方案最后的附件赫然写着几个大字&#xff1a;“申请国家级数字档案馆……“。这样的事屡见…

SpringMVC再学习

基于原生的Servlet&#xff0c;通过了功能强大的前端控制器DispatcherServlet&#xff0c;对请求和相应进行统一处理 如今我们不再去web.xml中去主持servlet 而是直接创建一个配置类ServletContainersInitConfig去基础AbstractDispatcherServletInitializer createServletApp…

高性能 WPF 图表控件LightningChart.NET:支持从 Web 服务器获取数据 | 附最新版试用下载

LightningChart.NET 是一款高性能 WPF 和 Winforms 图表,可以实时可视化多达1万亿个数据点。可有效利用CPU和内存资源&#xff0c;实时监控数据流。同时&#xff0c;LightningChart使用突破性创新技术&#xff0c;以实时优化为前提&#xff0c;大大提升了实时渲染的效率和效果&…

Python的面向对象,详细讲解Python之用处等基本常识

目录 Python 面向对象 面向对象技术简介 创建类 实例 实例 self代表类的实例&#xff0c;而非类 实例 创建实例对象 访问属性 实例 Python内置类属性 实例 python对象销毁(垃圾回收) 实例 实例 类的继承 实例 方法重写 实例 基础重载方法 运算符重载 实例…

机器学习: 可视化反卷积操作

转置卷积操作的详细分解 1. 简介 转置卷积是用于生成图像的&#xff0c;尽管它们已经存在了一段时间&#xff0c;并且得到了很好的解释——我仍然很难理解它们究竟是如何完成工作的。我分享的文章[1]描述了一个简单的实验来说明这个过程。我还介绍了一些有助于提高网络性能的技…

yolov5的基本配置

yolov5的基本配置train.pydata.yaml数据集标签文件格式:总结train.py def parse_opt(knownFalse):parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, defaultROOT / yolov5s.pt, helpinitial weights path)parser.add_argument(--cfg, typestr, defau…

【Java面试篇】Spring中@Transactional注解事务失效的常见场景

文章目录Transactional注解的失效场景☁️前言&#x1f340;前置知识&#x1f341;场景一&#xff1a;Transactional应用在非 public 修饰的方法上&#x1f341;场景二&#xff1a; propagation 属性设置错误&#x1f341;场景三&#xff1a;rollbackFor属性设置错误&#x1f3…

Apache druid未授权命令执行漏洞复现

简介 Apache Druid是一个实时分析型数据库&#xff0c;旨在对大型数据集进行快速的查询分析&#xff08;"OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景&#xff0c;同时&#xff0c;Druid也通常被用来助力分析型应用的图…

【蓝桥杯嵌入式】拓展板之数码管显示

文章目录硬件电路连接方式函数实现文章福利硬件电路 通过上述原理图&#xff0c;可知拓展板上的数码管是一个共阴数码管&#xff0c;也就是说某段数码管接上高电平时&#xff0c;就会点亮。   上述原理图还给出一个提示&#xff0c;即&#xff1a;三个数码管分别与三个74HC59…