php邮件需设content-type为text/html并配合mime-version头才能显示html格式;应避免现代css、优先内联样式、用表格布局;需兼顾纯文本降级与多端兼容性测试。

PHP默认用mail()函数发送的是纯文本邮件,内容不支持HTML格式,所以看起来“没格式”。要让邮件带加粗、颜色、链接、图片等效果,必须明确告诉邮件客户端:这是一封HTML邮件。
关键:设置正确的邮件头
只在邮件正文里写<b>加粗</b>没用,必须配合以下两个核心头信息:
-
Content-Type:声明为
text/html; charset=UTF-8 -
MIME-Version:通常设为
1.0
示例代码片段:
$headers = "MIME-Version: 1.0\r\n";$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
mail("user@example.com", "欢迎邮件", "
您好!
这是HTML格式的邮件。
AI生成HTML内容时注意兼容性
AI(如你正在用的这个助手)可以帮你生成语义清晰、结构合理的HTML片段,但发邮件不是网页渲染——要避开现代CSS特性:
- 不用
flex、grid、@media等响应式布局(多数邮箱客户端不支持) - 内联样式优先:比如
<p style="color:#333; font-size:14px;"></p>,别用外部CSS或<style></style>块 - 表格布局仍最稳妥:老式邮箱(如Outlook桌面版)对
<table>兼容性最好 <h3>别漏掉基础结构和可读性降级</h3> <p>专业邮件会同时提供HTML和纯文本双版本(multipart/alternative),但小项目中可简化:至少保证HTML邮件里有清晰语义,并在顶部或底部加一句纯文本说明,以防客户端禁用HTML:</p> <ul> <li>开头加简短提示:“本邮件包含HTML格式,请确保已启用HTML查看”</li> <li>重要链接旁附上可复制的URL(如:<code>点击访问:https://xxx) - 避免仅靠颜色传递关键信息(色弱用户可能看不到),搭配文字或图标
测试真比写代码还重要
Gmail、Apple Mail、Outlook网页版表现各不相同。发测试邮件前建议:
- 用工具预览:如Putsmail或Email on Acid
- 真机收件测试:尤其检查iOS邮件App和安卓Gmail App的换行、字体、图片加载
- 禁用图片后是否仍可读?把
<img>加上alt属性,宽度高度写死
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











