Joomla 3.5.1'e yükselttikten sonra "Geçersiz Adres" hatasını düzeltin


10

Joomla 3.5.1'e yükselttikten sonra Invalid AddressPHPMailer (Joomla Posta sistemi) kullanan bazı uzantılarımda bir hata alıyorum.

Bunu nasıl düzeltebilirim?

Yanıtlar:


16

Kullanıcılar için Cevap:

E-posta gönderen bir uzantı kullandığınız için bu hatayı alıyorsanız, lütfen geliştirici sayfasını ziyaret edin ve önce en son sürümü kullandığınızdan emin olun .

En son sürümü kullandığınızdan% 100 eminseniz, ancak yine de bu hatayı alıyorsanız, geliştiriciyle iletişime geçmeli ve bu hatayı sormalısınız. Onlara bu sayfaya bir bağlantı göndermek, geliştiricinin bu hatayı düzeltmesine yardımcı olabilir .

PHP ile yeterince deneyimli olduğunuzu düşünüyorsanız, aşağıdaki "geliştiriciler için yanıt" ı kullanarak kodu kendi başınıza düzeltmeye çalışabilirsiniz.

Geliştiricinin yeni bir sürüm yayınlayana kadar bunun kalıcı bir çözüm değil, sadece bir "yama" olacağını lütfen unutmayın.

Geliştiriciler için cevap:

Joomla 3.5.1, PHPMailer'ın istisnalarını varsayılan olarak etkinleştirir. Böylece daha önce gizlenen hatalar ortaya çıkıyor.

Bunun şimdi gösterdiği durumlardan biri işlevdedir addReplyTo.

Joomla 2.5 addReplyTode bir dizi parametresi vardı.

Joomla 3.0'dan başlayarak ( evet, 2012'de ) Joomla'nın JMail işlevi dizileri dize parametrelerinden farklı işlemeyecek şekilde değiştirdi. Bu nedenle, altta yatan PHPMailer koduna dayanıyordu, ancak bu da değişti ve böylece Yanıtla-Doğru'yu doğru şekilde ekleyemedi.

PHPMailer bunun için bir istisna atar, ancak Joomla 3.5.1'e kadar istisna işlemeyi manuel olarak etkinleştirmediyseniz kimse bu istisnayı görmedi!

Çözüm

Uzantı kodunuzu arayabilir addReplyTove aşağıdaki gibi satırları değiştirebilirsiniz:

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

buna:

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

Ayrıca try {} catch() {}, JMail / PHPMailer'dan gelen İstisna'yı işlemek için gereken kodu eklemek istersiniz .

Daha fazla bilgi:

Github konusunun tartışılması

Joomla forumlarındaki ilgili konular


1
Güzel bulmak. Joomla gibi sayfalar sağlanan diliyorum bu onların güncellemeler için
Lodder

2
Hbit tarafından yapılan düzenlemeye göre, bu Joomla 3.0'dan beri bir sorundur. Ancak, Joomla 3.5'e kadar bu sorunun eski kodu kullanan herhangi bir formda oluşmadığını doğrulayabilirim.
mavrosxristoforos

3

$ AnswerTo değişkeni boş olduğunda ve kullanmak zorunda kaldığında da bu hatayı aldım

if ( !empty($replyTo) ) {
  $mailer->addReplyTo($replyTo, $replyToName);
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.