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

如何在PHP mail函数发送的HTML邮件中实现换行?

解决PHP mail发送邮件时换行失效的问题

问题原因

你设置了邮件内容类型为text/html,HTML解析器会忽略普通换行符(\n/\r\n),将其视为空白字符,导致原本的多行内容合并成一行显示。

解决方案

方案1:将换行转换为HTML换行标签

使用PHP内置函数nl2br(),自动把字符串中的换行符替换成HTML的<br>标签,让邮件客户端正确解析换行:

$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type:text/html;charset=UTF-8\r\n";
$msg = nl2br("My name is John. 
 I am a boy. 
 I am so in so");
mail('to@user', 'Subject', $msg, $header);

如果字符串包含<、>这类HTML特殊字符,建议先转义再处理,避免破坏HTML结构:

$msg = nl2br(htmlspecialchars("Your Multiline String"));

方案2:改用纯文本格式发送邮件

若无需HTML格式,可将Content-type改为text/plain,邮件客户端会按纯文本规则解析换行,直接保留原字符串的换行:

$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-type:text/plain;charset=UTF-8\r\n";
$msg = "My name is John. 
 I am a boy. 
 I am so in so";
mail('to@user', 'Subject', $msg, $header);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:21:01