0

私はPHPmailerで次のコードを持っています:

$tomailn[0] = 'imap2@gazler.com';
$tomailn[1] = 'imap@gazler.com';
foreach($tomailn as $value)
{
$mail->AddAddress($value, '');
}

しかし、「メール機能をインスタンス化できませんでした」というエラーが表示されます。

配列からアイテムを削除すると正常に動作しますが、2 つ以上のアドレスを追加しようとするとエラーが発生します。なぜこれが起こっているのですか?複数の電子メール アドレスを追加する別の方法はありますか?

乾杯、ガズラー。

4

6 に答える 6

4

ソースコードを掘り下げます。PHPMailer.php を編集して " function MailSend" を見つけます。(5.0.2では564行目辺りです。)

上記の関数で、 への各呼び出しから@ エラー サプレッサーを削除しmail()ます。error_reportingがデバッグに適した値に設定されていることを確認してください。開発するときは、次のようなものを選択します。

error_reporting(E_ALL | E_STRICT);
ini_set('log_errors', 'オン');
ini_set('display_errors', 'オン');

PHP にエラーが表示されるかどうかを確認します。mail()PHPMailer は、 への最後の呼び出しが falsey を返した場合、または設定$rtされていない場合にのみインスタンス化例外をスローします。if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1)true

セーフモードを使用していますか?PHP Mailer は何$mailer->Senderini_get('safe_mode')言っていますか? (私の推測: セーフ モードで実行していなくても、 のような設定にするとOff、このコードは を返しtrueます。)

于 2010-02-20T22:09:32.773 に答える
0

「メール機能をインスタンス化できませんでした」。メーラー機能が機能しているかどうかを確認してください。多くの場合、このエラーはホスティングプロバイダーからの制限が原因で発生します。多くの場合、ホスティングプロバイダーはメール機能をブロックしますが、通常はこのエラーが発生します

于 2010-02-22T16:48:28.100 に答える
0

ほとんどの場合、このエラーはfromヘッダーが設定されていないか無効な場合に発生します。この変数を設定してみてください:

$mail->From = 'valid@mailaddress.com';

それでもうまくいかない場合は、次のいずれかを試してください。

  • mailサーバー(およびphp.ini設定)で有効になっているかどうかを確認します。
  • opensslモジュールが有効になっている (a を実行してphpinfo()OpenSSL を検索する)
于 2010-02-19T02:07:45.830 に答える
0

試してみました$mail->AddAddress($value);か?

于 2010-02-17T01:50:09.247 に答える
0

PHPMailer のソース コードを調べたところ、「メール機能をインスタンス化できませんでした」というメッセージが表示され、mail()false が返されます。

同じ機能を試すことができますか?ただし、通常はメールを受け入れることがわかっている 2 つの異なるメール アドレスを使用しますか?

于 2010-02-20T22:06:46.597 に答える
0

PHPMailer を使用していない場合は、最新バージョンをダウンロードしてみてください。バグが修正されています。メーラークラスが台無しになっている可能性があります。

于 2010-02-20T22:11:14.407 に答える