我希望使用 php 邮件程序调试信息来显示在网页中。当我启用调试时,它只是回显字符串。这意味着我的 html 乱序,我希望将其输出为变量,以便我可以将输出 html 放置在我想要的位置。
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
PHPMailer 的最新更改允许
Debugoutput
成为闭包,因此您可以让它执行您喜欢的任何操作,例如收集所有调试输出并稍后发出:
$debug = '';
$mail->Debugoutput = function($str, $level) {
$GLOBALS['debug'] .= "$level: $str\n";
};
//...later
echo $debug;
为了更好的代码风格,我想扩展@Synchro 的答案,这对我帮助很大。
$debug=null;
$mail->Debugoutput = function($str, $level) use(&$debug) {
$debug .= "$level: $str<br>";
};
答案的指针版本也可能是记录的好点。 再次感谢您的回答。