Joomla 3.5.1にアップグレードした後、「無効なアドレス」エラーを修正


10

Joomla 3.5.1にアップグレードした後、Invalid AddressPHPMailer(Joomla Mailingシステム)を使用する拡張機能の一部でエラーが発生します。

どうすれば修正できますか?

回答:


16

ユーザーへの回答:

メールを送信する拡張機能を使用しているためにこのエラーが発生する場合は、デベロッパーページにアクセスして、まず最新バージョンを使用していることを確認してください

最新バージョンを使用していることを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からの例外を処理するためのコードを追加する必要があります。

詳しくは:

Githubでの問題の議論

Joomlaフォーラムの関連トピック


1
いい発見。Joomla が更新のためにこのようなページを提供したことを願っています
Lodder

2
hbitによる編集によると、これはJoomla 3.0以降の問題です。ただし、Joomla 3.5までは、この問題は古いコードを使用するどのフォームでも発生しないことを確認できます。
mavrosxristoforos

3

$ replyTo変数が空で、使用する必要があった場合にも、このエラーが発生しました

if ( !empty($replyTo) ) {
  $mailer->addReplyTo($replyTo, $replyToName);
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.