
在使用 WordPress 的 wp_mail() 发送 text/plain 邮件时,若用单引号包裹 (如 ' '),它会被当作字面字符串而非换行符,导致邮件中显示为“ ”。应使用双引号或 PHP_EOL 确保换行生效。
在使用 wordpress 的 `wp_mail()` 发送 `text/plain` 邮件时,若用单引号包裹 ` `(如 `' '`),它会被当作字面字符串而非换行符,导致邮件中显示为“\n”。应使用双引号或 `php_eol` 确保换行生效。
在 PHP 中,字符串的换行符能否被正确解析,取决于所使用的引号类型:单引号(')会原样输出内容,不解析转义字符;而双引号(")支持
、 等转义序列的解释。你原始代码中:
$data = "First: $first_value" . ' ' . "Second: $second_value" . ' ' . "Third: $third_value";
由于 '
' 使用的是单引号,PHP 将其视为两个普通字符 —— 反斜杠 和字母 n,因此最终邮件正文显示为 First: value
Second: value
Third: value,而非预期的多行格式。
✅ 正确写法(推荐使用双引号):
$data = "First: $first_value Second: $second_value Third: $third_value";
✅ 更健壮、跨平台兼容的写法(推荐生产环境使用):
$data = "First: $first_value" . PHP_EOL .
"Second: $second_value" . PHP_EOL .
"Third: $third_value";
PHP_EOL 是 PHP 内置常量,代表当前系统默认的行结束符(Windows 为
,Linux/macOS 为
),能确保在不同服务器环境下均正确换行。
⚠️ 注意事项:
-
wp_mail()默认发送text/plain邮件,无需额外设置Content-Type即可正常渲染换行(但需确保换行符真实生效); - 若后续需切换为 HTML 邮件(
text/html),则应改用标签,并通过wp_mail()的$headers参数设置Content-Type: text/html; charset=UTF-8; - 避免混用引号风格(如
"First: $val" . ' '),易引发低级但难察觉的格式错误; - 调试时可用
error_log($data);或var_dump(nl2br($data));辅助验证换行逻辑。
总结:始终用双引号书写
,或优先采用 PHP_EOL —— 简洁、可靠、符合最佳实践。










