1点、解決出来なくて困っている問題があるのですが、添付ファイル自体は正常に送られているものの、メール本文の下に添付ファイルのヘッダ、つまり、boundary 文字で区切り、Content-Type から始まる文字列が表示されてしまってどうやっても消せません。
添付ファイルは解釈され、正常に処理もされていますが、ヘッダ部分は同時にメール本文の一部とも解釈されているのでしょうか?ヘッダの記述を外すと添付ファイルの処理もされないので二重記述ではないようです。
サーバの OS は Windows Server 2008 で PHP5.2.6、メール関数には mb_send_mail を使っています。尚、同じプログラムを FreeBSD 6.2 で実行した場合は全くそのような問題はありません。
ご教示いただければ幸いです。m(_ _)m
PHPの問題ではなくSMTPサーバの問題。
Windows標準のSMTPサーバを利用しているのではないか?
だとしたら、Windows用sendmailに置き換えてみてほしい。
http://www.spencernetwork.com/CommonGatewayInterface/WindowsProg...
コメント(3件)
【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】で対処すべきことなので、
どうでもいいと言えばどうでもいいのですけれど、自分的に気に入らないのでコメント欄にしてるわけだったりします)
「SMTPサーバの問題」とわざわざ大文字にて強調しているにもかかわらず、その直後に「Windows標準のSMTPサーバを利用しているのではないか?」と通常サイズ(対比的に小さくも見える)で聞いている時点で、整合性が取れないですね
本来であれば「Windows標準のSMTPサーバを利用しているのであれば、それが問題」と大文字にすべきところでしょう
言葉のあやとおっしゃるならそれはかまいませんが、それならば WindowsServer2008 のsmtpで不具合がでることを論理的に説明してみてください
今回は、はぐらかそうとしないでくださいね
mail 関数に切り替えましたが未だ変わらずです。
それよりもっと深刻な問題に直面しているため、別途質問を登録させていただきます。