0

phpmailerの非常に基本的な実装には、件名が2回追加され、コードに1回だけ追加されるという奇妙なエラーがあります。

$mailer->Subject = "My Subject";
$mailer->Send();

出力は、メールを受信しますが、件名が電子メールクライアントで2回表示されることです。その非常に奇妙な、そしてそれはコードの前半で設定されていません。

誰かがこのエラーを見て、それに対する修正を見つけましたか?

4

5 に答える 5

2

私は問題を解決しました。SingleToというプロパティがあり、trueに設定する必要があります。 http://phpmailer.worxware.com/index.php?pg=properties

$ mail-> SingleTo = true;

正常に動作するはずです。

于 2010-07-01T20:05:04.843 に答える
2

私はこれが古いことを知っていますが、解決策を見つけました:

phpmailerは、create_header関数の$headersに$subjectとrecipientsを追加しますが、デフォルトのsendメソッド(php mail)を使用すると、それらが再度追加されます。mail($ to、$ this-> Subject、$ body、$ header)

これを修正するには、phpmailerのcreate_header関数でこれらの行をコメントアウトするだけです。

//$header[] = $this->addr_append("To", $this->to);

//$header[] = sprintf("Subject: %s\n", trim($this->Subject));
于 2011-03-10T21:02:56.023 に答える
0

複数のクライアントでメールを表示してみましたか?件名がヘッダーに含まれているか、メールクライアントが何らかの理由で2回表示している可能性があります。おそらくメールのヘッダーとして?

個人的には、この種のバグを見たり聞いたりしたことはありません。

于 2010-05-07T12:49:06.073 に答える
0

PHPMailerの->$Subjectプロパティは単なる変数です。新しい値を割り当てても、前の値に追加されることはなく、前の件名が上書きされて置き換えられます。次のようなものを使用している場合を除きます。

$mail->Subject .= 'extra subject bits';
or
$mail->Subject = $mail->Subject . 'extra subject bits';

次に、原因を見つけるために他の場所を探す必要があります。メールサーバーの構成にバグがあるか、PHPMailerをサブクラス化していて、スーパークラスが何かファンキーなことをしている可能性があります。

異なるサーバーで処理されている複数のアカウントに同じメールを送信することで、受信サーバーの問題であるかどうかを確認できます。-> AddBCC、-> AddCC、および->AddAddressが複数回処理されます。アドレスが異なるサーバーによって処理されていることを確認してください。

于 2010-05-07T17:20:30.213 に答える
0

PHPMailer6.0.3にも同様の問題があります。

「件名」のヘッダーエントリが重複してメールが送信されていたため、@ yahoo、@ sky.com、@rocketmail.comの受信者からメールが返送されていました。それにもかかわらず、電子メールはHotmailとGMailによって受け入れられていました。

/PHPMailer6/PHPMailer.phpで、行2299〜2301をコメントアウトすると問題が修正されました。

/*if ('mail' != $this->Mailer) {
    $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
}*/

他の場所では、PHPMailerを使用してメールを送信しますが、これは典型的なコードサンプルです。

于 2018-02-06T17:30:06.887 に答える