[PHP-users 12057] Re: Mailboxに格納されたメールの、ヘッダと本文を分ける

S.Okazaki php-users@php.gr.jp
Fri, 06 Dec 2002 10:19:03 +0900


おはようございます。岡崎です。
昨日、メールのヘッダーと本文を区切ることについて
お伺いし、皆様にご教示いただいた事をヒントに、
下記のようなコードを書きました。
サマリが書けるかなぁ〜と思っていましたが、また質問に
なってしまいました(^^;

/*
$mail_dev=array(0,223,456,282…)
と言うメールの区切りを配列化したもの
つまり、1つ目のメールが0行目から222行目まで、
2つめのメールが223行目から455行目まで…
$fileopen=file($log);
という、Mailboxを開いたもの
*/

-----コード------------------------
//$mail_arr=array(array($head,$body),array($head,$bod),…
//となっていく予定
$mail_arr=array();
for($i=0;$i<sizeof($mail_dev);++$i) {
    $j=$i+1;
    $from=$mail_dev[$i];
    $to=$mail_dev[$j]; if($to<=0) { $to=sizeof($fileopen); }
    $line="";
//メール区切り毎にforで回す
    for($k=$from;$k<$to;++$k) {
        $line .=$fileopen[$k];
    }
//ここが重松さんにご教示していただいた事です
    list($head,$body)=split("^(\n|\r\n|\r?){2}$",$line);
    $a_mail=array($head,$body);
    array_push($mail_arr,$a_mail);
}
print_r($mail_arr);
-----ここまで--------------------------------------------------

が、しかし
list($head,$body)=split("^(\n|\r\n|\r?){2}$",$line);
これで、head bodyに別れてくれません。

そこで、田中さんにアドバイスを頂いた
http://php.s3.to/ より流用しようと思い(^^;
mailbbs(名前を出して良かったのでしょうか…?)
をダウンロードし、中を見てみました(pop.php)
その中に、convet()やmime_split()等見たことのない
関数が出てきております。
マニュアルにその関数はありませんでしたし、includeやrequire
してあるファイルの先にもその関数を見つけることが出来ません
でした。
これはどう言ったマジック(私にはそう見えます(^^;)なのでしょう…

> こんな感じだと思いますが、自前で作らなくても、
> 他の方がすでに示されたポインタから、
> あり物を拾ったほうが楽かもしれません。
> # まともかどうかは別としても。

ありがとうございます。
しかし、私の場合実用的に使うと言うよりも、勉強をする
と言うことが目的なのです(^^;

/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base 
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/