0

to名が外国文字( "å"など)とコンマ( "、")の両方を含むものに設定されている場合、Zend Mailは例外をスローします(mail()はfalseを返すため)。以下のコードで再現します。

$mail = new Zend_Mail('utf-8');
$mail
    ->setFrom('info@myhost', 'My company')
    ->setSubject('hi')
    ->addTo('MYEMAIL@SOMEHOST.COM', 'aå,a')
    ->setBodyHtml('<p>asd</p>')
    ->send();

addTo呼び出しを以下のいずれかに変更しても、エラーは発生しません。

->addTo('znarkus@gmail.com', 'aåa')
->addTo('znarkus@gmail.com', 'a,a')
->addTo('znarkus@gmail.com', 'aa')

奇妙なことに、例外(「メールを送信できません」)がスローされても、メールは配信されます。最新のZendMail(1.9.5?)を実行しています。半分にしてください!

4

3 に答える 3

0

問題は、 $to の mail() 関数が受け入れることです

User <user@example.com>, Another User <anotheruser@example.com>

また、PHP は文字列をコンマで内部的に分割して複数の受信者を区切っていると思いますが、提供している電子メール アドレスは 1 つだけです。

これが Zend_Mail または PHP のバグであると思われる場合は、適切な問題トラッカーに投稿してください。

于 2009-11-17T11:42:07.547 に答える
0

コンマは、メール ヘッダーの「to」部分にある予約済みのリテラルであり (決して使用しないでください)、異なるターゲットを区切ります。「最初の」メールが送信されたとしても、次のようなヘッダーが作成されます。

aå, a <znarkus@gmail.com>

このヘッダーを使用して、mta が 2 つのメールを送信しようとしていると仮定します。この理論を確認するために、メール ヘッダーを調べることができます。

于 2009-11-17T13:32:38.493 に答える