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

PHP使用mail()函数发送邮件时如何给文本添加下划线或加粗

解决PHP mail()函数邮件格式化无效的问题

Hey Lars, let's break down why your formatting attempts weren't working and get this sorted!

为什么之前的写法没用?

PHP的mail()函数默认发送的是纯文本邮件——不管你用下划线标记、非标准的(u)/(strong),还是把HTML标签用括号括起来,这些都会被当作普通的字符串显示,邮件客户端根本不会把它们解析成格式效果。

可行的解决方案:发送HTML格式邮件

要让邮件支持加粗、下划线这类格式,你需要告诉邮件客户端这是一封HTML邮件,具体要做两件事:

  1. 在邮件头里设置Content-Type: text/html(同时指定编码避免乱码)
  2. 使用标准的HTML标签来做格式化(比如<strong>/<b>加粗,<u>下划线)

基础示例代码

// 配置邮件基本信息
$to = 'recipient@example.com';
$subject = 'Your Updated Mail with Formatting';

// 编写带HTML格式的邮件内容
$message = '<div>
    <p><strong>Posted By:</strong> 这部分文字会被加粗</p>
    <p><u>这条内容会显示下划线效果</u></p>
</div>';

// 设置关键的邮件头,开启HTML支持
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8" . "\r\n";
// 可选:添加发件人信息
$headers .= 'From: Your Name <your_email@example.com>' . "\r\n";

// 发送邮件
mail($to, $subject, $message, $headers);

进阶:兼容纯文本客户端(可选)

有些用户的邮件客户端可能默认只显示纯文本,或者把HTML邮件标记为垃圾。如果你想兼顾两种格式,可以发送多部分MIME邮件,同时提供纯文本和HTML版本:

$to = 'recipient@example.com';
$subject = 'Dual-Format Mail';

// 定义一个唯一的边界符(用于分隔不同格式的内容)
$boundary = uniqid('email_boundary');

// 设置多部分MIME的邮件头
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=" . $boundary . "\r\n";
$headers .= 'From: Your Name <your_email@example.com>' . "\r\n";

// 纯文本版本(给不支持HTML的客户端)
$text_content = "Posted By: 纯文本内容\n这条没有格式的备份内容";

// HTML版本(带格式)
$html_content = '<p><strong>Posted By:</strong> 加粗的HTML内容</p><p><u>带下划线的文字</u></p>';

// 组装邮件内容
$message = "--" . $boundary . "\r\n";
$message .= "Content-Type: text/plain; charset=UTF-8\r\n";
$message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$message .= $text_content . "\r\n\r\n";

$message .= "--" . $boundary . "\r\n";
$message .= "Content-Type: text/html; charset=UTF-8\r\n";
$message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$message .= $html_content . "\r\n\r\n";

// 结束边界符
$message .= "--" . $boundary . "--";

// 发送邮件
mail($to, $subject, $message, $headers);

小提示

  • 尽量使用标准HTML标签:<strong>(语义化加粗)或<b>(样式加粗)、<u>(下划线)都是邮件客户端广泛支持的标签。
  • 别忘了设置charset=UTF-8,避免中文或特殊字符出现乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:59:31