You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP获取HTML文件内容后如何转为纯文本通过邮件发送

问题根因

你用<pre>、<code>包裹后不生效,核心原因是$html变量中自带的HTML标签会被邮件客户端直接解析渲染,不会作为文本展示。


方案1:发送HTML格式邮件

需要先对$html中的HTML特殊字符做实体转义,PHP内置的htmlspecialchars()函数可以完成这个操作,它会把<、>、&、引号等特殊字符转换为HTML实体,避免被客户端解析为标签。
示例代码:

ob_start();
include ("myFile.html");
$html = ob_get_contents();
ob_end_clean(); // 关闭输出缓冲,避免多余内容输出

// 转义HTML特殊字符,ENT_QUOTES参数会同时转义单、双引号
$escaped_html = htmlspecialchars($html, ENT_QUOTES);
// 用pre包裹保留原始换行、缩进格式
$mail_body = "<pre>" . $escaped_html . "</pre>";

额外注意:发送邮件时需要将邮件头部的Content-Type设置为text/html; charset=utf-8,同时声明UTF-8编码避免多语言乱码。


方案2:直接发送纯文本邮件

如果不需要在邮件里加其他HTML格式内容,可以直接将邮件的Content-Type设置为text/plain; charset=utf-8,此时不需要做任何转义,也不用加<pre>、<code>标签,直接把$html作为邮件内容发送即可,纯文本类型的邮件会原样展示所有内容,不会解析任何HTML标签。

内容的提问来源于stack exchange,提问作者Trombone0904

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:45:04