phpmailer 调试输出到 html 变量

问题描述 投票:0回答:2

我希望使用 php 邮件程序调试信息来显示在网页中。当我启用调试时,它只是回显字符串。这意味着我的 html 乱序,我希望将其输出为变量,以便我可以将输出 html 放置在我想要的位置。

$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
php html phpmailer
2个回答
21
投票

PHPMailer 的最新更改允许

Debugoutput
成为闭包,因此您可以让它执行您喜欢的任何操作,例如收集所有调试输出并稍后发出:

$debug = '';
$mail->Debugoutput = function($str, $level) {
    $GLOBALS['debug'] .= "$level: $str\n";
};
//...later
echo $debug;

0
投票

为了更好的代码风格,我想扩展@Synchro 的答案,这对我帮助很大。

    $debug=null;
        $mail->Debugoutput = function($str, $level) use(&$debug) {
            $debug .= "$level: $str<br>";
        };

答案的指针版本也可能是记录的好点。 再次感谢您的回答。

© www.soinside.com 2019 - 2024. All rights reserved.