Nach dem Upgrade auf Joomla 3.5.1 wird Invalid Address
bei einigen meiner Erweiterungen, die PHPMailer (das Joomla Mailing-System) verwenden , eine Fehlermeldung angezeigt.
Wie kann ich das beheben?
quelle
Nach dem Upgrade auf Joomla 3.5.1 wird Invalid Address
bei einigen meiner Erweiterungen, die PHPMailer (das Joomla Mailing-System) verwenden , eine Fehlermeldung angezeigt.
Wie kann ich das beheben?
Wenn Sie diesen Fehler erhalten, weil Sie eine Erweiterung verwenden, die E-Mails sendet, besuchen Sie die Entwicklerseite und stellen Sie zunächst sicher, dass Sie die neueste Version verwenden .
Wenn Sie zu 100% sicher sind, dass Sie die neueste Version verwenden, aber dennoch diesen Fehler erhalten, sollten Sie sich an den Entwickler wenden und ihn nach diesem Fehler fragen. Wenn Sie ihnen einen Link zu dieser Seite senden, kann der Entwickler diesen Fehler möglicherweise beheben .
Wenn Sie der Meinung sind, dass Sie genug Erfahrung mit PHP haben, können Sie versuchen, den Code mithilfe der folgenden "Antwort für Entwickler" selbst zu patchen.
Bitte beachten Sie, dass dies keine dauerhafte Lösung ist, sondern nur ein "Patch", bis der Entwickler eine neue Version herausgibt.
Joomla 3.5.1 aktiviert standardmäßig die Ausnahmen von PHPMailer. So werden zuvor ausgeblendete Fehler angezeigt.
Ein Fall, in dem dies jetzt zeigt, ist mit der addReplyTo
Funktion.
In Joomla 2.5 addReplyTo
hatte ein Array-Parameter.
Beginnend mit Joomla 3.0 ( ja, bereits 2012 ) wurde die JMail-Funktion von Joomla dahingehend geändert, dass Arrays nicht anders als Zeichenfolgenparameter behandelt werden. Daher stützte es sich auf den zugrunde liegenden PHPMailer-Code, der sich jedoch ebenfalls änderte und daher die Antwort an nicht korrekt hinzufügte.
PHPMailer löst dafür eine Ausnahme aus, aber bis Joomla 3.5.1 hat niemand diese Ausnahme gesehen, wenn Sie die Ausnahmebehandlung nicht manuell aktiviert haben!
Lösung
Sie können Ihren Nebenstellencode addReplyTo
wie folgt durchsuchen und Zeilen ändern:
$mailer->addReplyTo(array($replyTo, $replyToName));
dazu:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
Außerdem möchten Sie nach try {} catch() {}
Bedarf Code hinzufügen , um die von JMail / PHPMailer ausgehende Ausnahme zu behandeln.
Mehr Informationen:
Ich habe diesen Fehler auch erhalten, als die Variable $ replyTo leer war und verwenden musste
quelle