質問: メールのことでお聞きしたいのですが、 フリーのメール送信プログラム(PHP)を使い、数箇所にテストメールを送ったところ、yahooメール・gmailは問題なく受信できたのですが、あるサーバーに送ったメールだけ、メール本文の上部に、通常非表示になっているはずのヘッダー情報がなぜか表示されてしまいます。 これはメールプログラム側の問題なのでしょうか? それともサーバー側の問題なのでしょうか? 受信したメールの本文欄は以下のようなものです。 --- =?ISO-2022-JP?B?GyGAUDFINASELO=?= Content-Type: text/plain;charset=iso-2022-jp X-Mailer: PHP/5.5.0 Message-Id: <20160410012541.77T4ADF@f300.HATA.net> Date: Mon, 10 Aplil 2016 15:12:11 +0900 (JST) X-CMAE-Envelope: ASFklafjiejfajfoKJDOFONEEHAIjfjpawokPOFHEEIUHJFIKDJSADFEIkihn154+adfkei145aeo== ここからメール本文~ --- PHPメールプログラムの該当の箇所は以下です。差出名(FROM:)を日本語にエンコードしたり、ヘッダ情報を付加したりする部分ですが、例えばこれをコメントアウトすると上記のようなエラーは出ません。また、差出名(FROM:)を英数字のみにすると同じくエラーは出ません。とすると文字コードや日本語変換の問題なのでしょうか。 PHPコード $reheader="From: ".mb_encode_mimeheader($refrom_name)." \nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion(); 特定のメールサーバで受信したメールにだけ、なぜかヘッダー情報が表示されてしまうのにはどのような原因が考えられるのでしょうか?ご存知の方がいらっしゃいましたら、何卒お助けください。。
回答: 皆様に教えていただいた方法を試したのですが、症状は変わらずでした。 ネットでさらに調べてみたところ、mb_encode_mimeheader関数に、他にも引数があることが気にかかり、引数を設定してみたところ、質問に書いたようなヘッダー情報が消え、通常通りの表示になりました。 mb_encode_mimeheader($refrom_name)を、 mb_encode_mimeheader($refrom_name,ISO-2022-JP,'B', "\n")←こんなような記述に変更しました。 どうやら(FROM:差出名)は、一定の文字数を超えると自動改行されるらしく、それが原因で不具合が出ると。引数を設定することで、改行を明示的に指定する(?)と解決しました。 いずれにしましても皆様のご協力に感謝いたしております。ありがとうございました。