[PHP-users 10808] メザコヴロミネミュピボザベボヴアークーキンヴメザコヴロミネミュピボザベボヴアークーエンヴ添付ファイルの分別について
Yoshitake Shinohara
php-users@php.gr.jp
Mon, 14 Oct 2002 16:58:42 +0900 (JST)
よしたけ@YYNです。
> ここの、mimeDecode.phpを使うことにより、簡単にデコードできます。
> 使い方は、mimeDecode.phpにかかれていたと(思います)
今確認したところ、簡単にしかかかれてなかったので、あれじゃわかりにくい
ですね。
わたしは下のような感じで扱ってます。(コード抜き出しなのでそのまま動く
かどうかは保証できませんです)
#本来は、マルチパート時のいれこも考慮しないといけないんでしょうけど、
#滅多にそんなメール来ないので無視してます(^^;
---------------------ここから
include_once("mimeDecode.php");
// メールパース
$params['include_bodies'] = TRUE;
$params['decode_bodies'] = TRUE;
$params['decode_headers'] = TRUE;
$params['input'] = $mail_text;
$params['crlf'] = "\n";
$structure = Mail_mimeDecode::decode($params);
//var_dump($structure);
// ヘッダ取得
$headers = @(array)$structure->headers;
// Subject取得
$subject = mb_convert_encoding($headers["subject"], "EUC-JP","JIS,UTF-8,SJIS,EUC-JP");
if (!empty($structure->parts)) {
// マルチパートメール処理
for ($i = 0; $i < count($structure->parts); $i++) {
$parts = $structure->parts[$i];
$contenttype = $parts->ctype_primary ."/". $parts->ctype_secondary;
$contentfilename = $parts->d_parameters["filename"];
if(eregi("text",$contenttype)){
$part_body = mb_convert_encoding($parts->body, "EUC-JP","EUC-JP,JIS,UTF-8,SJIS");
} else {
$part_body = mb_convert_encoding($parts->body, "BASE64","PASS");
}
//ここに処理
}
} elseif (isset($structure->body)) {
// シングルパート時
$body = mb_convert_encoding($structure->body, "EUC-JP","EUC-JP,JIS,UTF-8,SJIS");
//ここに処理
}
------------------------
YYN partnership company
Yoshitake Shinohara
yoshi@yyn.jp