升级到Joomla 3.5.1后Invalid Address
,使用PHPMailer(Joomla Mailing系统)的某些扩展程序出现错误。
我怎样才能解决这个问题?
升级到Joomla 3.5.1后Invalid Address
,使用PHPMailer(Joomla Mailing系统)的某些扩展程序出现错误。
我怎样才能解决这个问题?
Answers:
如果由于正在使用某些发送电子邮件的扩展名而出现此错误,请访问开发人员页面,并首先确保您使用的是最新版本。
如果您100%确定使用的是最新版本,但仍然出现此错误,则应联系开发人员,并向他们询问此错误。向他们发送此页面的链接可能有助于开发人员修复此错误。
如果您认为自己对PHP有足够的经验,则可以尝试使用下面的“开发者答案”自行修补代码。
请注意,在开发人员发布新版本之前,这不是永久性的解决方案,而只是一个“补丁”。
默认情况下,Joomla 3.5.1启用PHPMailer的异常。这样就会显示以前隐藏的错误。
现在显示的一种情况是该addReplyTo
函数。
在Joomla 2.5中addReplyTo
有一个数组参数。
从Joomla 3.0开始(是的,回到2012年),Joomla的JMail函数已更改为在处理数组方面与在字符串参数方面没有区别。因此,它依赖于基础PHPMailer代码,但是该代码也进行了更改,因此无法正确添加Reply-To。
PHPMailer确实为此引发了一个异常,但是直到Joomla 3.5.1为止,如果您没有手动启用异常处理,那么没人会看到该异常!
解
您可以在扩展代码中搜索addReplyTo
并更改行,如下所示:
$mailer->addReplyTo(array($replyTo, $replyToName));
对此:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
此外,您希望try {} catch() {}
根据需要添加代码来处理来自JMail / PHPMailer的异常。
更多信息: