[PHP-users 3699] [解決]メール添付画像ファイルのファイル名を取得したい

Jun 2kawa php-users@php.gr.jp
Tue, 20 Nov 2001 23:39:55 +0900


二川です。お世話になっております。

都築さん、阿久根さん、Replyありがとうございました。
貴重な情報とご指摘のおかげで無事解決しました。この場を借りて
お礼申し上げます。
以下、今後のFAQ登録なども視野に入れ(?),整理して締めたいと思います。

[問題・課題]
multipart形式のメール添付ファイル名称をimap関数で取得したい。

[解決法]
imap_fetchstructure関数の戻り値に含まれるオブジェクト配列partsの
各要素を抜き出し、添付ファイルパートのparameters, dparameters
いずれかのオブジェクト配列を参照する。
ファイル名は主に、MIMEヘッダーのContent-Typeの後ろに追記されるか、
Content-Dispositionの後ろに追記されるかのいずれかである。
前者の場合、parameters配列に格納され、
attribute="NAME"、value=(ファイル名) となる。

後者の場合、dparameters配列に格納され
attribute="FILENAME"、value=(ファイル名) となる。

ちなみに添付ファイル本体は、該当パート部を imap_fetchbody()で読み込み
読み込んだ文字列をencoding属性に応じてデコードしてやればよい。

[余談]
内部構造のわからないオブジェクト変数などは、print_r関数で
全構造を表示できる。

こんな感じでしょうか。
ありがとうございました。
****************************
Jun Futakawa
futasan@lib.bekkoame.ne.jp
****************************