[PHP-users 12029] Mailboxに格納されたメールの、ヘッダと本文を分ける
S.Okazaki
php-users@php.gr.jp
Thu, 05 Dec 2002 16:09:11 +0900
こんにちは、岡崎です。
分かりにくいサブジェクトで申し訳ありません。
Mailbox形式で、メールが格納されています。
そのファイルを開き、まずメールを個々に分け
今度はその分けられたメールに対して、ヘッダー部分と、本文の
間に、線(print "<hr>\n";)を入れて表示したいと思っています。
Mailboxを開いて、ずっと眺めていたところ、私の環境では
メール開始は必ず
>From someone@somecompany.com Web Dec …
行から始まっていました。
Q1.
これは相手(送信者のMUAやMTA)に依存せずに、必ずこうなるの
でしょうか?
続いて、ここのメールをヘッダーと本文に分割したいと思い
調べてみたところ、
「分かれ目には改行を使う」と言うのを見つけ
下記のようなコードを書いてみました。
$mail_dev=array(0,233,453,882…)
一番最初のメールは0行目から232行目まで、
次のメールは233行目から452行目まで…
と言う意味の配列です。
for($i=0;$i<sizeof($mail_dev);++$i) {
$j=$i+1;
$from=$mail_dev[$i];
$to=$mail_dev[$j];
//$toが空であれば→最後のメール時は
if($to<=0) { $to=sizeof($file); }
//一メール毎にテーブルで囲む
print "<table border=\"1\"><tr><td>\n";
for($k=$from;$k<$to;++$k) {
//ここが質問の箇所です。ヘッダと本文の区切りをつけたい
//その他、\r , \n も試してみました。
if($file[$i]=="\r\n") { print "<hr>\n"; }
if (eregi("(.*)=\?iso-2022-jp\?B\?([^\?]+)\?=(.*)",$file[$k],$regs)) {
$file[$k]=$regs[1].base64_decode($regs[2]).$regs[3];
}
print $file[$k]."<br>\n";
}
print "</td></tr></table><p>\n";
}
このコードでは駄目でした(^^;
Q2
ヘッダと本文の区切りはどうやって見つければいいのでしょうか?
環境
PHP4.2.3
以上よろしくお願いいたします。
/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/