前端编写邮件html各邮箱兼容及注意事项

news2024/11/10 11:18:00

近期由于项目需要,第一次编写邮件html模板,发现各种邮箱兼容问题,尤其是windows自带的邮箱outlook兼容性极差,在此简单做下记录。

注意事项(全局样式规则)

  1. 使用越垃圾的样式越好,绝大部分css3不兼容,不要使用高级布局,例如flex布局等。
  2. 通篇使用table编写,即尽量只使用table、tbody、tr、td
  3. 图片路径不可以使用base64,会加载不出来,宽高也不可限制,alt都会不予显示
  4. 邮件一定要给最外层最小高度,否则在个别邮箱中会出现滚动条
  5. 不要写js事件会被过滤,链接跳转使用<a.>标签代替onclick事件,outlook邮箱客户端连<a.>都不支持,只能在后面写上文字叙述(或复制链接至浏览器查看)
  6. 只能写行内样式(style),能用属性尽量全部用属性,同时在style里面再写一次,比如图片宽高,可以直接用height=‘20’,width=‘20’,注意不要写单位,同时在style=“height:20px,width:20px”
  7. table中td仅支持padding,tr既不支持padding、也不支持margin
  8. 所有可以连写的样式全部拆开写,例如padding:10px 20px,要写成padding-top:10px;padding-bottom:10px;padding-left:20px;padding-right:20px
  9. 行数很多的文本记得加上word-break:break-all
  10. outlook不能识别!important
  11. 为了去掉单元格之间的间隙以及边框,记得在table标签上加上cellpadding="0"和 cellspacing="0"属性,在行内样式中加上border-collapse: collapse; border-spacing: 0;
  12. 一个单元格内有多段文本时,尽量使用 br标签

示例

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link
      href="https://cdn.bootcdn.net/ajax/libs/normalize/8.0.1/normalize.min.css"
      rel="stylesheet"
    />
    <title>成绩通知</title>
  </head>
  <body>
    <table
      cellpadding="0"
      cellspacing="0"
      style="
        max-width: 700px;
        margin: 0 auto;
        border-collapse: collapse;
        border-spacing: 0;
        border-left: 1px solid #e6e8ee;
        border-right: 1px solid #e6e8ee;
        border-bottom: 1px solid #e6e8ee;
      "
    >
      <tbody>
        <tr style="height: 40px; width: 100%; background-color: #20242c">
          <td style="padding-top: 9px; padding-bottom: 5px; padding-left: 20px">
            <img
              height="22"
              style="height: 22px"
              src="https://img0.baidu.com/it/u=3072371240,760127611&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=281"
              alt="Error"
            />
          </td>
          <td
            style="
              width: 100%;
              text-align: right;
              vertical-align: middle;
              padding-right: 20px;
            "
          >
            <img
              height="16"
              style="height: 16px"
              src="https://img2.baidu.com/it/u=1053999863,2498083417&fm=253&fmt=auto&app=120&f=GIF?w=607&h=500"
            />
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            style="
              font-size: 18px;
              font-weight: bold;
              color: #2d2d2d;
              padding-top: 30px;
              padding-bottom: 30px;
              padding-left: 20px;
              padding-right: 20px;
            "
          >
            成绩通知
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            style="
              font-size: 12px;
              color: #2d2d2d;
              padding-left: 20px;
              line-height: 17px;
            "
          >
            尊敬的学生家长,您好!
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            style="
              font-size: 12px;
              color: #2d2d2d;
              padding-top: 10px;
              padding-bottom: 20px;
              padding-left: 20px;
              padding-right: 20px;
              word-break: break-all;
              line-height: 17px;
              vertical-align: text-top;
            "
          >
            感谢您对学校的支持,点击以下“查看详情”链接可访问具体内容,或复制链接至浏览器查看(http://www.baidu.com)。
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            style="padding-bottom: 60px; padding-left: 20px; height: 30px"
          >
            <a
              href="http://www.baidu.com"
              style="text-decoration: none; display: block; width: 100px"
              target="_blank"
            >
              <table>
                <tbody>
                  <tr>
                    <td
                      height="30"
                      width="100"
                      style="
                        color: #fff !important;
                        font-size: 12px;
                        background: linear-gradient(
                          315deg,
                          #4bbfec 0%,
                          #7c3cf3 47%,
                          #c136ec 100%
                        );
                        cursor: pointer;
                        width: 100px;
                        height: 30px;
                        text-align: center;
                        vertical-align: middle;
                        line-height: 30px;
                      "
                    >
                      查看详情
                    </td>
                  </tr>
                </tbody>
              </table></a
            >
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            style="
              color: #2d2d2d;
              padding-bottom: 15px;
              padding-left: 20px;
              font-size: 12px;

              line-height: 17px;
            "
          >
            本邮件由系统自动发送,请勿直接回复
          </td>
        </tr>
        <tr>
          <td colspan="2" style="padding-left: 20px; padding-right: 20px">
            <hr style="border-top: #eff0f5; margin: 0" />
          </td>
        </tr>
        <tr>
          <td
            style="padding-left: 20px; padding-top: 16px; padding-bottom: 20px"
          >
            <img
              style="height: 60px; width: 60px"
              height="60"
              width="60"
              src="https://img2.baidu.com/it/u=1340460595,2858602922&fm=253&fmt=auto&app=138&f=GIF?w=511&h=500"
              alt="code"
            />
          </td>
          <td
            style="
              font-size: 12px;
              padding-top: 16px;
              vertical-align: text-top;
              color: #2d2d2d;
              line-height: 20px;
              padding-left: 10px;
            "
          >
            感谢您的信任
            <br />
            扫描二维码联系我们
            <br />
            xxxxx学校
          </td>
        </tr>
        <tr>
          <td
            colspan="2"
            height="4"
            style="
              width: 100%;
              height: 4px;
              background: linear-gradient(
                315deg,
                #4bbfec 0%,
                #7c3cf3 47%,
                #c136ec 100%
              );
            "
          ></td>
        </tr>
      </tbody>
    </table>
  </body>
</html>


效果图

在这里插入图片描述

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

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

相关文章

Spring面试题

Spring概述&#xff08;10&#xff09; https://blog.csdn.net/zhang150114/article/details/90478753 什么是spring? Spring是一个轻量级JavaEE开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的**业务逻辑层和其他各层的耦合问题。*…

Eclipse 连接 SQL Server 数据库教程

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

JUC面试(一)——JUCJMMvolatile 1.0

JUC&JMM JMM JUC&#xff08;java.util.concurrent&#xff09; 进程和线程 进程&#xff1a;后台运行的程序&#xff08;我们打开的一个软件&#xff0c;就是进程&#xff09;&#xff0c;资源分配单位线程&#xff1a;轻量级的进程&#xff0c;并且一个进程包含多个线程…

Docker部署Nexus通过Maven推送及拉取代码

&#x1f60a; 作者&#xff1a; 一恍过去&#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390&#x1f38a; 社区&#xff1a; Java技术栈交流&#x1f389; 主题&#xff1a; Docker部署Nexus通过Maven推送及拉取代码⏱️ 创作时间&#xff1a; 2023…

如何利用ChatGPT帮你写代码?

最近爆火的ChatGpt相信大家都不陌生&#xff0c;听说它还能写代码&#xff0c;而且能力不凡。作为合格的嵌入式软件工程师&#xff0c;必须得充分利用起来&#xff01; 获取系统IP地址 先写一个脚本&#xff0c;获取系统IP地址吧&#xff0c;没想到还有详细的注释&#xff01…

华亚转债上市价格预测

华亚转债基本信息转债名称&#xff1a;华亚转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;3.4亿元。正股名称&#xff1a;华亚智能&#xff0c;今日收盘价&#xff1a;62.84&#xff0c;转股价格&#xff1a;69.39。当前转股价值 转债面值 / 转股价格 * …

juc系列(1)---进程,线程,并行,并发

目录概述进程线程关系并发并行&#xff1a;同步异步&#xff1a;对比概述 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至CPU,数据加载至内 存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载…

Databend 内幕大揭秘第一弹 - minibend 简介

minibend &#xff0c;一个从零开始、使用 Rust 构建的查询引擎。这里是 minibend 系列技术主题分享的第一期&#xff0c;来自 PsiACE 。 前排指路视频和 PPT 地址 视频&#xff08;哔哩哔哩&#xff09;&#xff1a;https://www.bilibili.com/video/BV1Ne4y1x7Cn PPT&#x…

Unity 之 Addressable可寻址系统 -- 资源加载和释放

可寻址系统资源 -- 加载和资源释放 -- 进阶&#xff08;二&#xff09;一&#xff0c;资源加载1.1 同步异步对比1.2 三种加载模式二&#xff0c;释放资源2.1 基础概念2.2 实例演示2.2.1 示例演示一2.2.2 示例演示二2.3 注意事项概述&#xff1a;本篇文章从资源加载的方式和具体…

Spring官方提供【CSRF攻击】解决方案

步入正文 Cookie cookie是我们常见用来保存用户态信息&#xff0c;cookie跟随我们的请求自动携带。在同一域名下的请求&#xff0c;cookie总是自动携带。 用户态: 当前登入者的用户信息 以上的特性会导致一个潜在漏洞-CSRF CSRF CSRF一般指跨站请求伪造。 跨站请求伪造&…

长安链合约标准协议启动建设,邀请社区用户评审

智能合约是区块链摆脱第三方&#xff0c;实现验证、执行业务逻辑的“看不见的手”。随着联盟链产业落地进入快车道&#xff0c;需要面对的应用场景更加多样&#xff0c;智能合约标准协议作为推动联盟链应用生态繁荣的重要一环也需要加速推进发展。 区块链技术正在发展中规范。…

PHP 连接 MySQL

PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved)PDO (PHP Data Objects) 在 PHP 早期版本中我们使用 MySQL 扩展。但该扩展在 2012 年开始不建议使用。 我是该用 MySQLi &#xff0c;还是 PDO? 如果你需要一个简短的回答&…

C语言 栈的应用 计算简单的中缀表达式

代码简介&#xff1a;下面的代码实现了计算简单的中缀表达式&#xff1a;只可以处理一位正整数的四则运算及括号。是栈的简单应用&#xff0c;要实现中缀表达式运算需要用两个栈&#xff0c;一个存储数字的栈和一个存储运算符的栈&#xff0c;因为懒得写两遍不同的栈上的操作&a…

增益自适应PI控制器+死区过滤器(Smart PLC向导PID编程应用)

增益自适应和死区过滤器如果不和S7-200 SMART PLC PID向导组合实现,大家可以自行编写优化的PID指令。算法起始非常简单,具体实现过程大家可以参看下面的文章链接, 三菱增量式PID+死区过滤器 三菱PLC增量式PID算法FB(带死区设置和外部复位控制)_RXXW_Dor的博客-CSDN博客关于…

【论文简述】High-Resolution Optical Flow from 1D Attention and Correlation(ICCV 2021)

一、论文简述 1. 第一作者&#xff1a;Haofei Xu 2. 发表年份&#xff1a;2021 3. 发表期刊&#xff1a;ICCV 4. 关键词&#xff1a;光流、代价体、自注意力、高分辨率、GRU 5. 探索动机&#xff1a;小分辨率对于网络性能有影响&#xff0c;并且现实场景中大多为高分辨率的…

Minecraft 1.19.2 Fabric模组开发 04.动画效果方块

我们本次尝试在1.19 Fabric中制作一个具有动画效果的方块 效果演示效果演示效果演示 首先&#xff0c;请确保你的开发包中引入了geckolib依赖&#xff0c;相关教程请参考:Minecraft 1.19.2 Fabric模组开发 03.动画生物实体 1.首先我们要使用geckolib制作一个物品和对应的动画…

eCharts工具类

ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。ECharts最初由百度团队开源&#xff0c;并于2018年初捐赠给Apache基金会&#xff0c;成为ASF孵化级项目。 ECharts官方地址…

【数据结构与算法】顺序表的原理及实现

1.什么是顺序表 顺序表是用一段物理地址连续的存储单元进行存储元素的线性结构&#xff0c;通常是以数组进行存储。通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。 2.顺序表的实现 判断顺序表是否为空表public boolean isEmpty()判断顺序表是否满publi…

excel功能小技巧:自动求和的注意事项

在EXCEL里有个非常方便的按钮&#xff0c;叫做自动求和。不需要输入公式&#xff0c;直接一点&#xff0c;即可得出求和结果。由于它操作上的便利&#xff0c;所以深受小白喜爱。不过看着简单的自动求和按钮&#xff0c;实际上却藏着不少暗坑&#xff0c;稍不留神&#xff0c;可…

juc系列(2)--线程的使用及原理

目录线程创建线程ThreadRunnableCallable线程方法APIrun startsleep yieldjoininterrupt打断线程打断 park终止模式daemon不推荐线程原理运行机制线程调度未来优化线程状态查看线程线程 创建线程 Thread Thread 创建线程方式&#xff1a;创建线程类&#xff0c;匿名内部类方…