• 締切済み

mail関数使用時の宛先の文字数について

よろしくお願いします。 現在、mail関数を使って、社内の人間に連絡メールを送るPHPを作っています。 宛先に複数のメールアドレスを入れるため、 $to = "aaa@abc.jp,bbb@abc.jp,ccc@abc.jp"; といったように、複数のメールアドレスをカンマで区切って$toに格納しています。 今までは問題なく送信が行えていたのですが、メールアドレスを追加しなければいけなくなり、1件のメールアドレスを同じようにカンマで区切って追加したところ、正常に送信が行えなくなってしまいました。 ※プログラムはエラーもなく処理を完了するが、メールが届かない状態 宛先には、文字数やメールアドレスの件数に制限があったりするのでしょうか。 ちなみに、動作は以下の通りです。 メールアドレス6件(カンマを含み119文字)→OK メールアドレス7件(カンマを含み142文字)→NG 理由がまったくわからず困っております。 ご存じの方、いらっしゃいましたらよろしくお願いします。

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> ※プログラムはエラーもなく処理を完了するが、メールが届かない状態 PHPの問題ではなく、MTA(メールサーバ)の設定(policy limit)の問題と思います。 メールサーバのログに下記のような500番台のエラーが記録されていませんか? 534 Message header size, or recipient list, exceeds policy limit. sendmail: Unable to submit message. >> 宛先には、文字数やメールアドレスの件数に制限があったりするのでしょうか。 厳密には、RFC2821、RFC2822を確認してみてください。 おぼろげな記憶では、 SMTPの仕様としては100以上の受信者を取り扱えることを要求していますが、他に ・ヘッダーサイズ(行当たりの文字数等も)制限 ・使用している、MTAの設定(ポリシー) にも依存しますので数の特定は困難かと。

hoso1974
質問者

お礼

ありがとうございます。 なるほど、メールサーバー側の問題である可能性もあるわけですね。 サーバー管理者に確認してみます。 Outlookなどのメーラーで同じメールサーバーを使用してメール送信する場合は、宛先にこれ以上のメールアドレスを入れても送信できるのですが、それとは別問題でしょうか。 いずれにせよ教えていただいた情報をもとに、もう少し調べてみます。 ありがとうございました。

関連するQ&A