讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在 PHP 邮件中正确实现换行(HTML 与纯文本模式的区别)

冬墨酱_9755

冬墨酱_9755

发布时间:2026-02-23 10:40:12

|

757人浏览过

|

来源于php中文网

原创

如何在 PHP 邮件中正确实现换行(HTML 与纯文本模式的区别)

PHP 使用 text/html 邮件头后,\n 换行符失效,需改用 标签或切换为纯文本格式;本文详解原理、修复方案及最佳实践。

php 使用 `text/html` 邮件头后,`\n` 换行符失效,需改用 `
` 标签或切换为纯文本格式;本文详解原理、修复方案及最佳实践。

在 PHP 中通过 mail() 发送邮件时,若在 $headers 中声明了 'Content-type: text/html; charset=utf-8',就意味着你明确告诉邮件客户端:这是一封 HTML 格式的邮件。此时,邮件正文将被当作 HTML 文档解析——而 HTML 规范中,普通换行符 \n 或 \r\n 不会渲染为可视换行,它们仅作为空白字符被忽略(类似 HTML 中的多个空格只显示为一个)。真正起作用的换行标记是 HTML 标签
。

因此,原始代码中使用 \n 拼接的 $msg:

$msg = "Antwort an: $useremail\n". "Name: $username $lastname \n". "Telefonnummer: $fon \n". "Nachricht: $usermsg";

在 text/html 模式下会全部显示为一行(无换行),造成可读性严重下降。

✅ 正确做法有以下两种,推荐根据实际需求选择:

立即学习“PHP免费学习笔记(深入)”;

使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审
使用华数设计生成高保真HTML原型、演示文稿、动画和设计评审

使用经过文档化的设计技能,从真实的品牌或项目背景中生成HTML原生原型、幻灯片、动态演示、可视化图表和评审流程。

下载

方案一:保持 HTML 格式,改用
标签(快速修复)

只需将所有 \n 替换为
,并确保内容已做 HTML 安全处理(防止 XSS):

// ✅ 推荐:HTML 模式下使用 <br> + htmlspecialchars() 防注入
$msg = "Antwort an: " . htmlspecialchars($useremail) . "<br>" .
       "Name: " . htmlspecialchars($username) . " " . htmlspecialchars($lastname) . "<br>" .
       "Telefonnummer: " . htmlspecialchars($fon) . "<br>" .
       "Nachricht: " . nl2br(htmlspecialchars($usermsg)); // nl2br 将用户输入中的 \n 转为 <br>

⚠️ 注意:htmlspecialchars() 必须对所有用户输入(如 $username, $usermsg)进行转义,否则恶意 HTML 或脚本可能被直接执行。

方案二:改用纯文本格式(更安全、更简洁)

若无需加粗、链接等富文本效果,强烈推荐退回 text/plain 模式——它天然支持 \n 换行,且无 XSS 风险:

$headers = 'Content-Type: text/plain; charset=utf-8' . "\r\n"
         . 'From: ' . $myemail . "\r\n";

$msg = "Antwort an: $useremail\n" .
       "Name: $username $lastname\n" .
       "Telefonnummer: $fon\n" .
       "Nachricht:\n$usermsg"; // 用户输入中的 \n 可保留(但建议用 wordwrap() 控制行长)

? 小技巧:对长文本(如 $usermsg)可配合 wordwrap($msg, 70, "\n", true) 避免超长行被某些邮件客户端截断。

⚠️ 关键注意事项总结

  • ❌ 不要混用:不要在 text/html 头中发送纯 \n,也不要 text/plain 中写
    ;
  • ✅ 字符编码一致:charset=utf-8 在 text/plain 和 text/html 中均有效,确保中文不乱码;
  • ? 安全第一:HTML 模式下务必转义所有动态内容;text/plain 模式虽免于 XSS,但仍需过滤敏感控制字符(如 \0);
  • ? 兼容性提示:部分老旧邮件客户端对 UTF-8 支持较弱,可补充 Content-Transfer-Encoding: quoted-printable 头增强兼容性(非必需)。

选择方案二(text/plain)通常是更稳健、更易维护的选择;仅当业务明确需要邮件内嵌链接、样式或表格时,才启用 HTML 模式,并严格遵循输出转义规范。

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

0

2026.11.03

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

0

2026.11.03

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

0

2026.11.03

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

0

2026.11.03

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

0

2026.11.03

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

0

2026.11.03

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

20

2026.11.02

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

40

2026.11.02

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn