Joomla 3.5.1にアップグレードした後、Invalid Address
PHPMailer(Joomla Mailingシステム)を使用する拡張機能の一部でエラーが発生します。
どうすれば修正できますか?
Joomla 3.5.1にアップグレードした後、Invalid Address
PHPMailer(Joomla Mailingシステム)を使用する拡張機能の一部でエラーが発生します。
どうすれば修正できますか?
回答:
メールを送信する拡張機能を使用しているためにこのエラーが発生する場合は、デベロッパーページにアクセスして、まず最新バージョンを使用していることを確認してください。
最新バージョンを使用していることを100%確信しているにもかかわらず、このエラーが発生する場合は、開発者に連絡して、このエラーについて問い合わせてください。このページへのリンクを送信すると、開発者がこのエラーを修正するのに役立つ場合があります。
PHPを十分に経験していると思われる場合は、以下の「開発者向けの回答」を使用して、自分でコードにパッチを適用してみてください。
これは永続的な解決策ではなく、開発者が新しいバージョンを発行するまでの単なる「パッチ」であることに注意してください。
Joomla 3.5.1はデフォルトでPHPMailerの例外を有効にします。したがって、以前は隠されていたエラーが表示されます。
これが今示す1つのケースはaddReplyTo
関数です。
Joomla 2.5 addReplyTo
では配列パラメーターがありました。
Joomla 3.0以降(はい、2012年に遡ります)、JoomlaのJMail関数は、文字列パラメーターとは異なる配列を処理しないように変更されました。したがって、基礎となるPHPMailerコードに依存していましたが、これも変更されたため、Reply-Toを正しく追加できませんでした。
PHPMailerはそのために例外をスローしますが、手動で例外処理を有効にしないと、Joomla 3.5.1までは誰もその例外を確認できませんでした。
解決
拡張コードを検索して、次のaddReplyTo
ような行を変更できます。
$mailer->addReplyTo(array($replyTo, $replyToName));
これに:
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailer->addReplyTo($replyTo, $replyToName);
} else {
$mailer->addReplyTo(array($replyTo, $replyToName));
}
さらにtry {} catch() {}
、必要に応じて、JMail / PHPMailerからの例外を処理するためのコードを追加する必要があります。
詳しくは: