Setelah memutakhirkan ke Joomla 3.5.1, saya mendapatkan Invalid Address
kesalahan di beberapa ekstensi saya yang menggunakan PHPMailer (sistem Mailing Joomla).
Bagaimana saya bisa memperbaikinya?
Setelah memutakhirkan ke Joomla 3.5.1, saya mendapatkan Invalid Address
kesalahan di beberapa ekstensi saya yang menggunakan PHPMailer (sistem Mailing Joomla).
Bagaimana saya bisa memperbaikinya?
Jawaban:
Jika Anda mendapatkan kesalahan ini karena Anda menggunakan beberapa ekstensi yang mengirim email, silakan kunjungi halaman pengembang, dan pertama - tama pastikan Anda menggunakan versi terbaru .
Jika Anda 100% yakin bahwa Anda menggunakan versi terbaru, tetapi masih mendapatkan kesalahan ini, Anda harus menghubungi pengembang dan bertanya kepada mereka tentang kesalahan ini. Mengirimkan mereka tautan ke halaman ini, dapat membantu pengembang untuk memperbaiki kesalahan ini .
Jika Anda merasa cukup berpengalaman dengan PHP, Anda dapat mencoba menambal kode sendiri, menggunakan "jawaban untuk pengembang", di bawah ini.
Harap dicatat bahwa ini bukan solusi permanen, tetapi hanya "tambalan", sampai pengembang mengeluarkan versi baru.
Joomla 3.5.1 mengaktifkan pengecualian PHPMailer secara default. Dengan demikian kesalahan yang sebelumnya tersembunyi muncul.
Satu kasus di mana ini menunjukkan sekarang adalah dengan addReplyTo
fungsinya.
Di Joomla 2.5 addReplyTo
memiliki parameter array.
Dimulai dengan Joomla 3.0 ( ya, kembali pada tahun 2012 ) Fungsi JMail Joomla berubah menjadi tidak menangani array berbeda dari parameter string. Jadi itu bergantung pada kode PHPMailer yang mendasarinya, yang bagaimanapun juga berubah dan dengan demikian gagal untuk menambahkan Balas-Ke dengan benar.
PHPMailer memang melemparkan Pengecualian untuk itu, namun hingga Joomla 3.5.1 tidak ada yang melihat pengecualian itu jika Anda tidak mengaktifkan penanganan pengecualian secara manual!
Larutan
Anda dapat mencari kode ekstensi addReplyTo
dan mengubah baris seperti ini:
$mailer->addReplyTo(array($replyTo, $replyToName));
untuk ini:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
Selanjutnya Anda ingin menambahkan try {} catch() {}
kode yang diperlukan untuk menangani Pengecualian yang berasal dari JMail / PHPMailer.
Informasi lebih lanjut: