为邮件创建完美的HTML正文(邮箱html开发,包含样式整理、测试、模板)

4,624 阅读3分钟

今天接受一个需求,将HTML网页嵌入邮件中以html形式发送出去,刚看到需求那是一头蒙。不知道该如何动手,各种搜索资料,看实例。发现为邮件创建完美的HTML正文,要求点还是蛮多的。

  • 出于安全考虑,邮箱html不支持任何JavaScript脚本以及外部的CSS样式
  • 使用table标签进行整体布局

1、提前需要准备知识:

  • table表格相关属性

  • tableCSS样式
  • 整体注意开发规范
	国内各主流邮箱 代表qq邮箱(pc+mobile)、163邮箱、126邮箱、sina邮箱、苹果自带邮箱
    (pc+mobile)、outlook。
    
    1.放弃外链样式和内部样式
    2.能不写css3就不写
    3.页面稍微复杂就尽量使用table布局
    4.能不放图就不放图
    5.采用渐进式开发(正常html可以使用各种“黑科技”进行兼容,在邮箱上就不一定能如愿了,所以尽量
    采用渐进式而不是兼容式。)
    6.标签尽量只用div与table相关标签
    
  • 整体页面规范
	1.不要用htmlbody等标签这些标签会被过滤。
    
	2.如果要兼容移动端,页面宽度在360px以下,不要期望meta标签的scale,也不要期望有些移动端邮箱
    软件会给你自动缩放,最好在最外围标签用max-heightmin-height自我调节。
    如果只要兼容pc端最好在800px以内。
    
	3.html代码大小尽量在15kb以内(不包括图片)。
    
	4邮件主题控制在18个字以内,避免使用特殊符号,容易产生乱码。
    
	5.链接尽量使用a链接,直接写的链.接可能会被做垃圾邮件。
    
	6.如果群发邮件比较多,邮件名称最好在一定数量(20w左右)的时候变变。
    
	7.不使用类似如下敏感及带促销类的文字:免费、优惠、特惠、特价、低价、便宜、廉价、视频、赚钱、
    群发、发财、致富、代开、薪水、交友、支付、商机、法宝、宝典、秘密、情报、机密、保密、绝密、
    神秘、秘诀等。如果一定需要,请把敏感字做成图片。
	样式不一定会继承,所以多话时间重复写以下。
    
	8.链接地址的长度不能超过255个字符,会导致无法追踪或链接错误。
    
	10.写上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

2、具体内容样式注意事项

	1.max-height ——qq邮箱安卓端中,图片的失效

	2.margin——qq邮箱pc端中,margin不能填百分比,低版本outlook图片这个样式无效

	3.padding——qq邮箱pc端中,padding不能填百分比,低版本outlook无效

	4.float——outlook低版本不支持

	5.position——完全不建议使用

	6.background——outlook低版本与gmail不支持

	7.overflow——outlook低版本不支持

	8.text-overflow——outlook低版本不支持

3、尽量书写方案

   1.一个td里面不要放多个图片
   
   2.dom的居中就用align=center,宽和高就用widthheight标签属性,能用标签属性就用标签属性,背景也是
   
   3.空白分割用&nbsp;
   
   4.所有图片要设置border=0
   
   5.链接的打开方式统一为:_blank
   
   6.table中设置border=0
   
   7.尽量减少百分比和auto的使用
   
   8.将样式属性拆开写,比如要用到margin的时候拆开成margin-left9.注意清空元素默认样式
   
   10.无内容的标签最好写上font-size:0; height:0;width:0;line-height:0;
   
   11.不要在行内元素,或者行内块元素中添加块级元素
   
   12.图片名称不能含有ad字符,否则图片上传后会显示成“被过滤广告”
   
   13.链接数量不能超过1014.字体一般不会给你改

5、测试

代码复制进去,正常发送邮件一样。

6、邮件要求兼容 outlook 等邮箱软件,发现很多样式都不生效。找到的模板如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       <title></title>
   </head>
   <body>
   <!-- 最外层table-->
   <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="">
       <tr>
           <td align="center" valign="top">
               <!-- 定宽table-->
               <table border="0" cellpadding="0" cellspacing="0" width="" style="">
                   <tr>
                       <td align="center" valign=""></td>
                   </tr>
               </table>
           </td>
       </tr>
   </table>
   </body>
</html>

7、 案例效果: haiqiancun.com/bbs/bbsPage…