- 締切済み
PHPでezweb宛メール
下記のプログラムでezwebアドレスにメールを送信しようとしてますが、ヘッダ部分に本文が記述され、本文部分は空で送信されてしまいます。 Docomoやvodafoneは正常な動作が確認できました。 本文の文字コードをShift_JISとかにしてみましたが変化はありませんでした。 ご教授願います。 --- // 送信先 $from = "TEST <test@hogehoge.net>"; $to = "test@ezweb.ne.jp"; $rtpath = "test@hogehoge.net"; // Subject $subject = "テスト件名"; $subject = "=?iso-2022-jp?B?" .base64_encode(jcodeconvert($subject,0,3)) ."?="; // メールヘッダ $head = "From: $from \n"; $head .= "Mime-Version: 1.0 \n"; $head = "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; $head .= "Content-Transfer-Encoding: 7bit \n"; if($rtpath){ $head .= "Return-Path: $rtpath \n"; } // 本文 $body = "テスト本文 \n"; $body .= "テスト本文 \n"; $body .= "\n"; $body = jcodeconvert($body,0,3); // 送信 mail($to,$subject,$body,$head);
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- siwa32
- ベストアンサー率60% (9/15)
マニュアルのmailの説明に 注意: 複数のヘッダを区切る場合、\r\nを使用する必要 があります。ただし、いくつかのUnix MTA(Mail transfer agents)では 改行文字(\n)だけでも動作します。 とあるのでヘッダの句切りは\nでなくて\r\nを使うのかな
$headで加えてだめということなので headの最後に数個 \nつけてみるとか そのソースだとコンバートされてからかえるので $body = jcodeconvert($body,0,3); ↓ $body = jcodeconvert($body,0,3); $body = "\n".$body; で試してみてください。 ローカルで自分宛でためしましたが、 \nつけなくても 受信した物は1行あいていますね・・・ 関係ないとは思いますが $head = "Content-Type: text/ の .= の . がとれていますので ソース確認してください。 どうしてもダメでしたら ezweb特有の仕様があるのかもしれないのでauのHPで仕様を確認してみてください。
お礼
ご返答ありがとうございます。 いくつかのパターンをやってみましたがダメでした。 auに聞いてみましたが ISO-2022-JPをShift_JISにしたら行くはずです、と言われてそれ以外は教えていただけませんでした。
- moon_night
- ベストアンサー率32% (598/1831)
ヘッダと本文の間は一行改行(\n)を入れる規則になっています。 これが入っていない場合正常に動くほうがおかしいです。
お礼
ご返答有難う御座います。 残念ながらヘッダと本文の間に\nで改行を加えましたが変化はありませんでした。 他の解決方法を提示していただければ幸いです。 ヘッダの下部に下記を加えた場合 -> 変化なし $head .= "\n"; 本文上部に下記を加えた場合 -> 変化なし $body = "\n";
普通のPCメーラーで なんでもいいので届いたメールをヘッダ付きでみてください。 どのソフトでも ヘッダと本文のあいだは 1行あいています ヘッダと本文のあいだがないようですが 1行あけて ためしました?
お礼
ご返答有難う御座います。 他の方にも同様のご返答を頂きましたが残念ながらヘッダと本文の間に\nで改行を加えましたが変化はありませんでした。 他の解決方法を提示していただければ幸いです。 ヘッダの下部に下記を加えた場合 -> 変化なし $head .= "\n"; 本文上部に下記を加えた場合 -> 変化なし $body = "\n";
お礼
ご返答有難うございます。 ヘッダの区切りに\r\nを利用してみましたがダメでした。 他にもいくつか教えて頂いた例もダメでした。 ますますezwebがイヤになってきましたorz