• 締切済み

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

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

  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

  • 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

  • PHPメールフォームであて先を複数指定したい

    お世話になります。 フリーのPHPスクリプトを利用してメールフォームを作成しています。 設置、テストともに正常にできたのですが、 あて先のメールアドレスを複数にすることができません。 ************************************************* // フォームからの入力された内容の送信先 $to = "aaa@bbb.com"; // フォームからの入力された内容の送信先(bccで追加送信する場合)があればメールアドレスを記入。なければ空白 $bcc = ""; // 送信されるメールのタイトル $subject = "お問い合わせありがとうございます"; ********************************************************* これでaaa@bbb.comに送信されるのですが、 送信先を複数にしようとして ******************************************************** // フォームからの入力された内容の送信先 $to = "aaa@bbb.com"; "ccc@ddd.ne.jp"; ******************************************************** のようにしたところ、うまくできませんでした。 ,で区切ったりしてみたのですがエラーが出てしまい、PHPは初心者なもので途方にくれています。 このようなPHPの記述で複数の送信先を指定する方法を教えて頂けないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Pearのmailで複数宛先送信時のTO

    pearのmailでメール送信をするプログラムを書いてみました。 sendの第一引数にカンマ区切りで複数アドレスを指定することで、複数宛先に送信できることはわかっているのですが、その際にTOを、それぞれ指定することはできないのでしょうか。 headersのTOがメーラーで「TO」として表示されることはわかったのですが、そこに、受信したアドレスが入ることが理想です。 sendに渡しているアドレスをセットしてしまうと、全員に全アドレスが見えてしまいますし、空にすると何も表示されず…。 勉強不足で申し訳ありませんが、アドバイスいただけると助かります。

    • 締切済み
    • PHP
  • グループアドレスの表示名1つにしたい

    vistaでwindowsメールを使っています。 アドレス帳を使い、Dというグループ名で aaa@aaa.aaa bbb@bbb.bbb ccc@ccc.ccc の3つのアドレスを連絡先にしました。 送るときに、宛先にDを指定し送信しました。 しかし、相手が受け取ったとき、宛先には「D」という文字だけでなく 全てのアドレスも一緒に表示されちゃいます。 BBCを使うと今度はグループ名が出ません。 どうすれば宛先にDという文字だけで送れますか? OutlookやOutlookExpressを使えば解決できるのでしょうか? 初心者丸出しの質問で、何がわかってないかもわかってない状態ですが どうかよろしくお願い致します。

  • スパムメールの宛先が自分のアドレスではない??

    スパムメールの宛先が、 自分のアドレスではないのに、届いています。 メッセージヘッダーの宛先を見ると、 aaa@ok.com になっているのに、自分のアドレス bbb@wave.ne.jp に届いているのですが、これはどういうことなのでしょう? 宛先がaaa@ok.comで、他のアドレスにはbccで配信されているのでしょうか?

  • MySQLで1つの項目に対しての集計

    1つの項目内にカンマ等で区切られたデータがあります。その数を下の2種類のように集計する事って可能でしょうか? 例) KEY  項目 ----------------- 1   AAA,BBB,CCC 2   AAA,CCC 3   CCC,DDD 1) ----------------- 1  3(件) 2  2(件) 3  2(件) 2) ----------------- AAA  2(回) BBB  1(回) CCC  3(回) DDD  1(回) よろしくお願いします。

  • メールの宛先が、自動で追加されてしまう。

    メールの宛先が、自動で追加されてしまう。解決方法を教えてください。 使用ソフト:Outlook Express 返信のボタンを押しただけですが、受信したメールに返信すると、誤って関係のないアドレスが宛先に追加されることがあります。 送信を押すまで、宛先は1件のみです。 関係のないアドレスは、アドレス帳に登録されています。ですので、当初は人的ミスかと思っていました。 しかし通常そのアドレスを追加しようとすると、「宛先」をクリックしてから、最小でも6回の操作を必要とするので、人的ミスと考えるには多少無理があるように思えます。 ウイルススキャンなどしても特定できません。 考えられる、原因をご指摘ください。

  • メールのあて先をチェックするThunderbirdのアドオン

    お世話になっております。 掲題の件、メールの宛先を間違わない為のアドオンを探しております。 現在"Confirm-Address"というアドオンを使い、送信前に宛先の確認を行っているのですが、 このアドオンでは送り先がToなのかCCなのかBCCなのかが判断できず複数名にメールを送る場合、2度手間3度手間となる事が多くあります。 そこでメール送信前に送り先がTo,CC,BCCのどれを指定しているかが分かるアドオン等がありましたらお教えいただければと思います。 以上、よろしくお願い致します。

  • メールの宛先アドレスの最大数について

    お世話になります。 先日、会社の人から問い合わせがあり、「メールをスタッフの人に(OutlookExpressで)送信したけど何件かエラーのメールが返ってきた」とのことで、エラーメッセージを見ると”too many recipients”となっていました。話を聞いてみると宛先(CCやBCC)にかなりの数(100件以上と思われる)のアドレスを指定したようでした。 おそらく、宛先のメールサーバーの設定で、一度のsmtpセッションで処理できる宛先に制限が設けてあると思われますが、主にDoCoMoやvodafoneなど携帯電話への送信の場合、1通のメールのCCやBCCに何件のアドレスを指定できるのでしょうか?(今回はDoCoMoへ送信したメールのエラーでした)。 また、このような多数の宛先が指定されたメールが社内から送られた時に、自社メールサーバー(sendmail)でsmtpのセッションを分けて宛先サーバーに送り出す設定は無いものでしょうか? 長くなりましたが、よろしくお願いいたします。

  • strcmp関数などでの複数の文字列の比較

    以下の例はランダムなiの値で文字列にアクセスして その文字列がどの文字列であるかを判定しているプログラムです。 char *string[] = {   "aaa",   "bbb",   "ccc", } ; int i = rand() % 3; if ( strcmp( string[ i ], "aaa" ) == 0 ) {   printf("aaaです"); } if ( strcmp( string[ i ], "bbb" ) == 0 ) {   printf("bbbです"); } if ( strcmp( string[ i ], "ccc" ) == 0 ) {   printf("cccです"); } するとこのようにif文の羅列になってしまいます。 (strstr関数を使う場合などでも同じような感じです。) 複数の文字列を判定する場合などにもっと良い手法は無いでしょうか?

  • yahoo の送信メールに宛先アドレスが入らない

    yahooメールを作成し、宛先のアドレスを入れるため to +の+をクリックして出てきた宛先の名前(アドレス)をクリックしても 送信メールのtoにアドレスが入らないため送信できない。どうすればいいのか教えてください。