[PHP-users 3655] Re: メール添付画像ファイルのファイル名を取得したい

AKUNE Yutaka php-users@php.gr.jp
Mon, 19 Nov 2001 11:08:16 +0900


阿久根です。


On Sun, 18 Nov 2001 22:31:19 +0900
"Jun 2kawa" <futasan@lib.bekkoame.ne.jp> wrote:

> メールに添付されている画像ファイルを読み込もうと試みております。
> 添付画像ファイルの内容は取得に成功しておりますが、、
> どうにも添付ファイルの
> ファイル名を取得できずに四苦八苦しております。
[中略]
> imap_fetchstructureの戻り値オブジェクトの各要素の中を確認してみても
> ファイル名を発見できませんでした。
> ファイル名を取得するには、別の関数を使用する必要があるのでしょうか?

以前POP3クライアントを作るために調査した事があります。multipart/mixed な
メールの添付ファイルの名前を取得するには、やはり imap_fetchstructure 関
数を使用します。

// 該当メールの構造をもつ Structure インスタンスの作成
$Structure = imap_fetchstructure($POP3, $messageNum, FT_UID);
// Content-Typeなどで判断して、添付ファイルのパートを parts[]で指定。
$attachmentName = $Structure->parts[1]->parameters[0]->value;

これで $attachmentName に添付ファイルの名前が入るはずです。添付ファイル
が1つだけならば、たぶん parts[1] がその添付ファイルのパートになるはず。
ちなみに parameters配列のインデックスの意味は私も良く分かりません。
とりあえず 0 を指定してますが。あと、dparameter配列というのもありますが、
なにに使うんでしょうね。

私はここでメールとMIMEの勉強をしました。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html

今頭がIMAPモードじゃないのでうそついてたらすみません。


------8<------
yutaka akune
csakune@ipc.pioneer.co.jp