升级到Joomla 3.5.1后,修复“无效地址”错误


10

升级到Joomla 3.5.1后Invalid Address,使用PHPMailer(Joomla Mailing系统)的某些扩展程序出现错误。

我怎样才能解决这个问题?

Answers:


16

用户答案:

如果由于正在使用某些发送电子邮件的扩展名而出现此错误,请访问开发人员页面,并首先确保您使用的是最新版本

如果您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的异常。

更多信息:

关于Github的问题的讨论

Joomla论坛中的相关主题


1
好发现。我希望的Joomla提供像网页这样对他们的更新
Lodder

2
根据hbit所做的编辑,这是Joomla 3.0以来的一个问题。但是,我可以确认,直到Joomla 3.5,使用旧代码的任何形式都不会发生此问题。
mavrosxristoforos '16

3

当$ replyTo变量为空并且必须使用时,我也收到此错误

if ( !empty($replyTo) ) {
  $mailer->addReplyTo($replyTo, $replyToName);
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.