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

如何在PHPMailer邮件正文中嵌入完整对话引用历史?

如何用PHPMailer在回复邮件中嵌入对话引用历史

完全可以通过$mail->Body属性嵌入对话历史,PHPMailer没有专门内置处理邮件引用的方法,直接构建符合格式的正文内容是最直接有效的方案。

实现步骤

1. 根据历史数据生成引用内容

假设你从数据库拿到的$conversationHistory是按对话顺序排列的数组(每个元素包含date、sender_name、sender_email、content字段),可以写一个工具函数生成带层级引用的文本:

function buildPlainTextQuote(array $history): string {
    $quote = '';
    $level = 1;
    foreach ($history as $msg) {
        $formattedDate = date('D j F Y at H:i', strtotime($msg['date']));
        // 添加上下文行
        $quote .= str_repeat('>', $level) . " On {$formattedDate} {$msg['sender_name']} <{$msg['sender_email']}> wrote:\n";
        // 给正文每一行加上对应层级的引用符号
        foreach (explode("\n", $msg['content']) as $line) {
            $quote .= str_repeat('>', $level + 1) . " {$line}\n";
        }
        $quote .= "\n";
        $level++;
    }
    return $quote;
}

2. 整合到PHPMailer的邮件内容中

因为你开启了IsHTML(true),建议同时准备HTML和纯文本两个版本的邮件内容,兼容不同客户端:

$mail = new PHPMailer();
// 配置SMTP等基础参数...
$mail->IsHTML(true);
$mail->Subject = 'Meeting';

// 自己的回复内容
$myReply = "Sounds good!";

// 构建HTML格式的引用(用<blockquote>标签实现层级)
function buildHtmlQuote(array $history): string {
    $htmlQuote = '';
    foreach ($history as $msg) {
        $formattedDate = date('D j F Y at H:i', strtotime($msg['date']));
        $sender = htmlspecialchars("{$msg['sender_name']} <{$msg['sender_email']}>");
        $htmlQuote .= "<p>On {$formattedDate} {$sender} wrote:</p>";
        $htmlQuote .= "<blockquote>" . nl2br(htmlspecialchars($msg['content'])) . "</blockquote>";
    }
    return $htmlQuote;
}

// 整合HTML正文
$mail->Body = $myReply . "<br><br>" . buildHtmlQuote($conversationHistory);
// 整合纯文本正文(给不支持HTML的客户端)
$mail->AltBody = $myReply . "\n\n" . buildPlainTextQuote($conversationHistory);

$mail->Send();

关键注意点

  • 处理HTML内容时必须用htmlspecialchars()转义所有用户输入的内容,避免邮件格式错乱或XSS风险
  • 如果数据库中存储的是HTML格式的邮件正文,需要先转换为纯文本再生成引用,或者针对HTML结构调整引用逻辑
  • 确保对话历史的顺序正确,从最新的回复往前追溯,保证引用层级符合阅读习惯

内容的提问来源于stack exchange,提问作者Mike V.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 02:50:27