Sau khi nâng cấp lên Joomla 3.5.1, tôi gặp Invalid Address
lỗi trong một số tiện ích mở rộng sử dụng PHPMailer (hệ thống Gửi thư Joomla).
Làm thế nào tôi có thể sửa lỗi này?
Sau khi nâng cấp lên Joomla 3.5.1, tôi gặp Invalid Address
lỗi trong một số tiện ích mở rộng sử dụng PHPMailer (hệ thống Gửi thư Joomla).
Làm thế nào tôi có thể sửa lỗi này?
Câu trả lời:
Nếu bạn gặp phải lỗi này vì bạn đang sử dụng một số tiện ích mở rộng gửi email, vui lòng truy cập trang nhà phát triển và trước tiên hãy đảm bảo bạn đang sử dụng phiên bản mới nhất .
Nếu bạn chắc chắn 100% rằng bạn đang sử dụng phiên bản mới nhất nhưng vẫn gặp lỗi này, bạn nên liên hệ với nhà phát triển và hỏi họ về lỗi này. Gửi cho họ một liên kết đến trang này, có thể giúp nhà phát triển khắc phục lỗi này .
Nếu bạn cho rằng mình đủ kinh nghiệm với PHP, bạn có thể tự mình sửa mã, sử dụng "câu trả lời cho nhà phát triển" bên dưới.
Xin lưu ý rằng đây sẽ không phải là một giải pháp lâu dài, mà chỉ là một "bản vá", cho đến khi nhà phát triển phát hành một phiên bản mới.
Joomla 3.5.1 cho phép các ngoại lệ của PHPMailer theo mặc định. Do đó, các lỗi đã được ẩn trước đó xuất hiện.
Một trường hợp mà điều này cho thấy bây giờ là với addReplyTo
chức năng.
Trong Joomla 2.5 addReplyTo
có một tham số mảng.
Bắt đầu với Joomla 3.0 ( vâng, trở lại vào năm 2012 ) Hàm JMail của Joomla đã thay đổi để không xử lý các mảng khác với các tham số chuỗi. Do đó, nó dựa vào mã PHPMailer cơ bản, tuy nhiên cũng đã thay đổi và do đó không thể thêm chính xác Trả lời.
PHPMailer không đưa ra một Ngoại lệ cho điều đó, tuy nhiên cho đến khi Joomla 3.5.1 không ai thấy ngoại lệ đó nếu bạn không kích hoạt xử lý ngoại lệ theo cách thủ công!
Giải pháp
Bạn có thể tìm kiếm mã mở rộng của mình addReplyTo
và thay đổi các dòng như thế này:
$mailer->addReplyTo(array($replyTo, $replyToName));
đến đây:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
Hơn nữa, bạn muốn thêm try {} catch() {}
mã khi cần thiết để xử lý Ngoại lệ đến từ JMail / PHPMailer.
Thêm thông tin: