HTML 邮件模版如何写?究竟要不要 Table 布局、内敛样式、图片加载

我们有个工单系统,一直用 Laravel 的 Markdown 模版发邮件通知,工单和评论的内容都是 HTML 格式的,为了能放到 Markdown 模版中,只好先转出纯文本,这样损失了不少信息,比如链接、图片、列表、代码块等。

我想自己重新写 HTML 模版,但是我听说邮件的 HTML 和 Web 的不同,有奇葩的限制,或者说最佳实践,至少包括:

  • 只能用 <table> 布局,我看到的邮件大多是各种表格的嵌套,这怎么手写呢?
  • 只能用 inline style,不能用外部样式或者 <style>

我自己尝试过 GMail 网页端和企业微信客户端,不遵守这些建议有时也不影响,但是我发现基本上所有的公司都是遵守的,尽管 Learnku 没遵守。

我的问题是到底这么写这样的模版呢?手打一堆 <table>style=""感觉不现实吧?

我注意到 React 有 react.email/ 这样的框架来生成邮件模版,那 Laravel 下有没有简便的方法?

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

简单的手写,style用内联样式,这是最佳实践,你用<style>,有的客户端确实支持的,问题是有不支持的怎么办,你一个一个兼容改不完的.我碰到过写style,邮件客户端直接给我删除的,还有的我类名pt-2给我改成xx_pt-2这种的,都是测试没问题,碰到个奇葩客户端出错.

table都是用mjml,你用vscode搜索mjml插件,拖拽组件就行,而且自动帮你把手机的响应式也做了,写好之后mjml导出成html,然后php替换变量就行

1周前 评论

我遇见过写样式 让后有的浏览器可以有的不可以,最好写内联 然后用table 不建议用div

1周前 评论

你可以直接在富文本编辑器里面调好,然后富文本里面选择代码方式,然后全选复制粘贴搞定

1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!