PHPmailer parseAddresses - 如何摆脱“通知”消息

时间:2016-07-11 17:25:18

标签: phpmailer

在使用PHPmailer parseAddresses函数时,我正试图在我的一个脚本中删除以下消息:

注意:未知:必须使用逗号分隔地址:第0行的未知中的xxx(errflg = 3)

$mailer = new PHPMailer(true);
try {
    $a = $mailer->parseAddresses('aaa@aaa.aaa xxx');
}
finally {
    ...
}

我正在使用PHP 7.0.8以及以下错误处理预设:

declare(strict_types = 1);
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');

我知道我可以阻止显示错误,但这似乎不是正确的方法。当然我知道我的例子中提供的电子邮件地址不正确......

3 个答案:

答案 0 :(得分:0)

我不确定你在抱怨什么:当你提供错误输入时,它告诉你输入信息不正确!避免错误的方法不是传递格式错误的输入!

正如错误所说,它期望以逗号分隔的RFC822格式(不是您提供的格式)中的一个或多个地址,这可能类似于:

xxx <aaa@aaa.aaa>, yyy <bbb@aaa.aaa>

如果您不提供该格式的数据,则会在您看到时抱怨。 parseAddress方法涵盖in the docs

您是否希望它能做其他事情?

答案 1 :(得分:0)

PHPMailer会在输出中写入通知,因此您可以启动输出缓冲区,并在调用后将其刷新。像这样:

$mailer = new PHPMailer(true);
try {
    ob_start();
    $a = $mailer->parseAddresses('aaa@aaa.aaa xxx');
    //$notices = ob_get_contents();
    ob_end_clean();
}
finally {
    ...
}

答案 2 :(得分:0)

我不得不处理同样的问题。只需创建一个自制的解决方案,即可以更灵活的方式完成大多数相同的事情。对于任何有兴趣的人:

@connection

应该自我解释