最近1个月的时间,都在研究和实现怎么将HTML基于Outlook邮件发送和接收。
整个开发过程下来,只想说一句,我真的太难了~~

如果是第一次编写邮件html,并将其通过Outlook等邮箱应用发送给指定的收件人,你会惊讶的发现自己写好的html怎么在邮箱里显示就完全乱套了?!写好的布局和样式怎么很多都没有被正确的渲染出来??明明在浏览器打开自己写的html页面是没有任何问题的呀!所以,怎么样才能让邮件应用正确的渲染我们的html代码呢?

由于公司用的邮件是Outlook, 所以这篇笔记是针对“在Outlook邮箱里编写html邮件。如果是其他邮箱的需求,个人觉得也是可以借鉴一下的~~

首先,不建议在接到需求以后,立马开始编写相关代码。

因为编写邮件html和平常写的html并非一样。因为很多html用法是不能被识别的。下面列出一些大佬写的文章,建议在自己动手编写邮件html前,花一些时间耐心阅读一下,熟悉编写的规则,一定会给你节省很多时间,避免采坑~

HTML 邮件兼容问题与解决方案
EDM制作要点
Outlook HTML渲染引擎
布局自适应_HTML 文件在PC&移动端完美自适应布局的技巧

看完上面的链接,你会了解大部分的编写规则。接下来是示例demo,可以根据自己的需求选择阅读相应的示例:
响应式 HTML 邮件制作之三个实例

如果你的需求是要编写响应式的html邮件,可以阅读:

制作简单的响应式HTML邮件
Creating a Future-Proof Responsive Email Without Media Queries

这上面将讲解地更详细,会讲到ghost table的概念:幽灵table,即:只能被outlook桌面客户端识别的table语法,该语法将无法被outlook移动客户端网页浏览器识别。

对应响应式的邮件来说,这点非常重要,简单总结来说就是:
  • outlook桌面客户端:无法识别div、float、display实现左右浮动效果,使用ghost table来实现;
  • outlook网页端:无法识别ghost table,但能使用div、float、display可以实现;如果你使用F12查看一些别人网站的代码,你也是查看不见ghost table语法的,但实际上人家很可能就是用了的!
  • outlook移动客户端:无法识别ghost table,但能使用div、float、display可以实现;还能识别媒体查询语法!

可以将上面的语法结合一起使用,就能开发响应式的html邮件了!

列出几个常见的注意事项:

1.HTML 邮件中几乎只有这几个元素——table / tr / td / span / img / a。尽量避免使用 div / p 或是其他标签。而且并不是所有邮箱都支持 colspan / rowspan 属性,所以所有布局都需要使用 table 嵌套解决。
2.使用行内样式
3.float、position 等 CSS 都会被过滤,甚至 margin: 0 auto; 都不起作用.display、backgroud-image、margin和padding、position、trans开头、text-indent没用,但padding可以用在td上。
4.img标签使用属性“width”和“height”定义长和宽。如:

<img width="10" height="10" src="*.png" />

6.字体属性分开写。

line-height: 14px;
font-size: 12px;
font-family: "微软雅黑", Arial, sans-serif;
color: #999999;

7.table使用以下属性:

width
height
bgcolor
align
valign

8.修改默认行高,添加“mso-line-height-rule: exactly”:

<td style="mso-line-height-rule: exactly; line-height: 36px;"><!-- ... -->
</td>

9.有一些小间隙会使用空白图片占位。
10.使用ghost table 居中邮件html

<!DOCTYPE html>
<html lang="en" xmlns="https://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="x-apple-disable-message-reformatting"><!--[if !mso]><!--><meta http-equiv="X-UA-Compatible" content="IE=edge" /><!--<![endif]--><title></title><!--[if mso]><style type="text/css">table {border-collapse:collapse;border-spacing:0;margin:0;}div, td {padding:0;}div {margin:0 !important;}</style><noscript><xml><o:OfficeDocumentSettings><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml></noscript><![endif]-->
</head>
<body style="margin:0;padding:0;word-spacing:normal;background-color:#ffffff;"><div role="article" aria-roledescription="email" lang="en" style="-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;background-color:#ffffff;"><table width="100%" align="center" border="0" cellpadding="0" cellspacing="0" role="presentation"><tr><td align="center">[content goes here]</td></tr></table></div>
</body>
</html>

编写Outlook html邮件相关推荐

  1. outlook html 邮件表格边框问题

    工作中需要定时自动发送一个邮件报表,使用 HTML.CSS 编写正文.为了减少代码量,在外部 style 中定义如下: td {border:1px solid;} 这种写法在 foxmail 上显示 ...

  2. 邮件内容会留在服务器吗,outlook的邮件最长可以保存多久,去

    outlook的邮件最长可以保存多久,去年的邮件还可以找到吗?如何设置不自动删除过期的? 问题来自: 2020-01-01 0 / 200 提交回答 2021-07-30 关于 outlook的邮件最 ...

  3. outlook express 邮件超过2G时的解决方法

    outlook express 邮件超过2G时的解决方法 问题描述:如果您的计算 机是Windows系统,而且您所使用的文件格式为FAT32,那么在Outlook Express中,如果"收 ...

  4. 关于OUTLOOK 2007邮件无法打印的问题解决方法

    近期经常遇到用户反映Outlook 2007邮件无法打印,打印邮件时提示如下错误: 通过网络搜索,发现有不少遇到同样问题的人,是由于近期更新了Outlook的一个补丁引起的,可以通过卸载该补丁(KB2 ...

  5. outlook自定义邮件提示声音以及设置接收邮件的间隔时间

    outlook自定义邮件提示声音 开始---控制面板---单击声音选项卡---选择声音选项---程序事件下选择---选择新邮件通知---选择浏览你自己要定义的声音文件---确定---OK了!(声音文件 ...

  6. outlook存档邮件_如何在Outlook 2013中存档电子邮件

    outlook存档邮件 We've always been told that backing up our data is a good idea. Well, that same concept ...

  7. outlook阅读html,Outlook HTML邮件中英文混排字体设置

    Outlook HTML邮件中英文混排字体设置 如果是纯中文或者纯英文指定一个字体就可以,如果是中英文混排,希望中文和英文使用不同的字体,该如何? css 中 font-family 可以把多个字体名 ...

  8. outlook 2010邮件传输接口错误解决一例

    现象: 打开OFFICE OUTLOOK 2010时,报邮件传输接口返回未知错误,导致无法使用OUTLOOK. 故障截图: 解决:尝试用OFFICE软件自带的检测和修复功能重装OUTLOOK发现不行, ...

  9. 在outlook上邮件可以撤回?邮件撤回成功后对方还能看到吗?

    在使用电子邮箱发送邮件时,发错邮件是一个常见的问题,以前用过Outlook撤回邮件,但经常撤回失败,而且邮件撤回成功后不知道对方还能不能看到.所以,我只能再发一封邮件告诉对方邮件发错了,请勿阅读邮件, ...

最新文章

  1. JDK和JRE的区别-zz
  2. android interview 2
  3. Ajax+Node.js前后端交互最佳入门实践(01)
  4. [转]ssh常用用法小结
  5. openerp child_of操作符深度解析
  6. 怎么才能在APP里实现移动端车牌识别功能?
  7. 45个非常有用的Oracle查询语句(转自开源中国社区)
  8. 【感悟】此时此刻,新年快乐
  9. quagga源码分析--大内总管zebra
  10. 顺序栈实现迷宫求解问题v0.1
  11. 芯片(一)--74HC595中文资料
  12. 常用软件问题四则希望对大家有帮助
  13. web资源优化-图片篇(一)
  14. 教你如何进行嵌入式网络模块的联网操作
  15. qt for android 中无法运行和调试应用程序,No Device Found,The adb tool in the Android SDK lists all......
  16. php开发游戏玩家属性,游戏数值策划属性篇(一)
  17. Windows11无法打开 WindowsTerminal 图形化设置界面
  18. 电脑插上耳机没有声音
  19. 大数据之数据质量检查
  20. 数据结构实验一:多项式乘法问题

热门文章

  1. 嵌入式数据库-SQLite的基本使用
  2. 禅道怎么启动mysql_禅道启动mysql报错connectByPDO
  3. Python 中paramiko模块应用
  4. 【狂神说】Spring Cloud
  5. (Arduino)ESP8266通过局域网通信控制LED
  6. Python—re正则表达式
  7. 【异常分析】Springboot中使用测试类报空指针(at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs)
  8. 将图像DN值定标维热辐射强度之后,可用Planck函数求解出星上亮度温度
  9. OpenCV3_C++_Erode()图像的收缩 实例
  10. python实验大纲_Python程序设计实验-教学大纲-段震