PHP で添付付メールを送信するプログラムを作っています。


1点、解決出来なくて困っている問題があるのですが、添付ファイル自体は正常に送られているものの、メール本文の下に添付ファイルのヘッダ、つまり、boundary 文字で区切り、Content-Type から始まる文字列が表示されてしまってどうやっても消せません。

添付ファイルは解釈され、正常に処理もされていますが、ヘッダ部分は同時にメール本文の一部とも解釈されているのでしょうか?ヘッダの記述を外すと添付ファイルの処理もされないので二重記述ではないようです。

サーバの OS は Windows Server 2008 で PHP5.2.6、メール関数には mb_send_mail を使っています。尚、同じプログラムを FreeBSD 6.2 で実行した場合は全くそのような問題はありません。

ご教示いただければ幸いです。m(_ _)m

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/08/15 08:56:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:yamaneroom No.1

回答回数1040ベストアンサー獲得回数61

ポイント60pt

PHPの問題ではなくSMTPサーバの問題


Windows標準のSMTPサーバを利用しているのではないか?

だとしたら、Windows用sendmailに置き換えてみてほしい。

http://www.spencernetwork.com/CommonGatewayInterface/WindowsProg...

  • id:windofjuly
    うぃんど 2010/08/10 08:15:41
    テスト環境が無く、アバウトなのでコメントにしておきます
    【1】受け取ったメールのソースを表示してみてください
    mb_send_mail のお節介によって、入れた覚えのない Content-Type: text/plain; が入っていると思います 
     
    【2】対処方法はmail関数を使う事です
    環境によってはmail関数を使っているつもりでも自動的に mb_send_mail が使われる設定になっている場合もあります
    (php.iniで設定します http://www.php.net/manual/ja/mbstring.overload.php )
     
    【3】mb_send_mail と mail の使い方の違いに関して適当に探してきたページです。参考までにどうぞ
    http://www.y2sunlight.com/water/webman/php2/2H.7.html
     
    【4】WindowsとBSDの違い
    改行コードの違いではないかと思いますが、原因不明 ← ここがアバウト
    (改行コードであったとしても正常な構図ではなく【2】で対処すべきことなので、
    どうでもいいと言えばどうでもいいのですけれど、自分的に気に入らないのでコメント欄にしてるわけだったりします)
  • id:windofjuly
    うぃんど 2010/08/10 13:37:22
    > id:yamaneroom さんへ

    「SMTPサーバの問題」とわざわざ大文字にて強調しているにもかかわらず、その直後に「Windows標準のSMTPサーバを利用しているのではないか?」と通常サイズ(対比的に小さくも見える)で聞いている時点で、整合性が取れないですね
    本来であれば「Windows標準のSMTPサーバを利用しているのであれば、それが問題」と大文字にすべきところでしょう
     
    言葉のあやとおっしゃるならそれはかまいませんが、それならば WindowsServer2008 のsmtpで不具合がでることを論理的に説明してみてください
     
    今回は、はぐらかそうとしないでくださいね
  • id:jazzmine
    アドバイスありがとうございます。
    mail 関数に切り替えましたが未だ変わらずです。
    それよりもっと深刻な問題に直面しているため、別途質問を登録させていただきます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません