Correggi l'errore "Indirizzo non valido", dopo l'aggiornamento a Joomla 3.5.1


10

Dopo l'aggiornamento a Joomla 3.5.1, ricevo un Invalid Addresserrore in alcune delle mie estensioni che utilizzano PHPMailer (il sistema di mailing Joomla).

Come posso risolvere questo problema?

Risposte:


16

Risposta per gli utenti:

Se ricevi questo errore perché stai utilizzando un'estensione che invia e-mail, visita la pagina degli sviluppatori e assicurati innanzitutto di utilizzare la versione più recente .

Se sei sicuro al 100% di utilizzare la versione più recente, ma stai ancora riscontrando questo errore, devi contattare lo sviluppatore e chiedere loro questo errore. L'invio di un collegamento a questa pagina può aiutare lo sviluppatore a correggere questo errore .

Se ti consideri abbastanza esperto con PHP, puoi provare a patchare il codice da solo, usando la "risposta per gli sviluppatori", di seguito.

Si noti che questa non sarà una soluzione permanente, ma solo una "patch", fino a quando lo sviluppatore non emetterà una nuova versione.

Risposta per gli sviluppatori:

Joomla 3.5.1 abilita le eccezioni di PHPMailer per impostazione predefinita. Pertanto vengono visualizzati errori precedentemente nascosti.

Un caso in cui questo mostra ora è con la addReplyTofunzione.

In Joomla 2.5 addReplyToaveva un parametro array.

A partire da Joomla 3.0 ( sì, nel 2012 ) la funzione JMail di Joomla è cambiata per non gestire le matrici in modo diverso dai parametri di stringa. Quindi si basava sul codice PHPMailer sottostante, che tuttavia è cambiato anche e quindi non riesce ad aggiungere correttamente il Reply-To.

PHPMailer lancia un'eccezione per quello, comunque fino a Joomla 3.5.1 nessuno ha visto quell'eccezione se non hai abilitato la gestione manuale dell'eccezione!

Soluzione

Puoi cercare il tuo codice di estensione addReplyToe modificare le righe in questo modo:

 $mailer->addReplyTo(array($replyTo, $replyToName));

a questa:

if(version_compare(JVERSION, '3.0', 'ge')) {
  $mailer->addReplyTo($replyTo, $replyToName);
} else {
  $mailer->addReplyTo(array($replyTo, $replyToName));
}

Inoltre, si desidera aggiungere il try {} catch() {}codice necessario per gestire l'eccezione proveniente da JMail / PHPMailer.

Maggiori informazioni:

Discussione del problema su Github

Argomento pertinente nei forum Joomla


1
Bella scoperta. Vorrei che Joomla fornisse pagine come questa per i loro aggiornamenti
Lodder

2
Come per la modifica effettuata da hbit, questo è un problema da Joomla 3.0. Tuttavia, posso confermare che fino a Joomla 3.5, questo problema non si verifica con nessun modulo che utilizza il vecchio codice.
mavrosxristoforos

3

Ho anche riscontrato questo errore quando la variabile $ replyTo era vuota e doveva essere utilizzata

if ( !empty($replyTo) ) {
  $mailer->addReplyTo($replyTo, $replyToName);
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.