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

Jun 2kawa php-users@php.gr.jp
Mon, 19 Nov 2001 18:59:50 +0900


This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C1712C.5DB30E80
Content-Type: text/plain;
	charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

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

alpaさん、阿久根さん、Replyありがとうございます。

>阿久根さんWrote:
> 以前POP3クライアントを作るために調査した事があります。
> multipart/mixed な
> メールの添付ファイルの名前を取得するには、やはり imap_fetchstructure 関
> 数を使用します。
>
> // 該当メールの構造をもつ Structure インスタンスの作成
> $Structure = imap_fetchstructure($POP3, $messageNum, FT_UID);
> // Content-Typeなどで判断して、添付ファイルのパートを parts[]で指定。
> $attachmentName = $Structure->parts[1]->parameters[0]->value;
>
> これで $attachmentName に添付ファイルの名前が入るはずです。添付ファイル

なるほど、$attachmentName で取得すればよかったわけですね。
大変有用な情報ありがとうございます。現在、確認できる環境が手元に無いのですが
できるだけ早く確認してみたいと思います。

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

そうなんです。imap_fetchstructureはオブジェクト配列が多すぎて、
何がどこに格納されているのか、混乱してしまいますね。おそらくメチャメチャ
使い勝手の良い関数な感じがするんですけど、情報が少なすぎるのが残念です。
ちなみに $attachmentName という属性名はどこでお知りになったのでしょう
か。。。
ソースとか、ヘッダファイルを直接見てみるしかないのかな。。。。

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

私もここを参考にしました^^  SSLの詳細なんかもここで勉強した記憶があります。
非常にわかりやすく整理されているので、いつも重宝してます。

>alphaさんWrote:
> 参考になるかどうかはわかりませんが本文にfilenameが書かれています。
> 同じように取得できないものでしょうか?

本文というか、Content-Dispositionですね。
確かにここにファイル名が格納される場合もあるんですが、
おそらく送信側のメールクライアントに依存するのだと思いますが、
ヘッダの記述がDispositionには無い場合もあったのです。
ちなみに、Dipositionの内容も "Attachment"までは
取得できたんですけど、その先が。。。。
むしろimap_body() でまるまんま拾ってきて、
自分でParseすれば確実なのかもしれませんね。
ともあれ、情報ありがとうございました。

解決したらまたご報告します。
*************************************
Jun Futakawa(2kawa@crypton.co.jp)
*************************************

------=_NextPart_000_0000_01C1712C.5DB30E80
Content-Type: text/html;
	charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dshift_jis">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.0.4712.0">
<TITLE> Re: =
=83=81=81[=83=8B=93Y=95t=89=E6=91=9C=83t=83@=83C=83=8B=82=CC=83t=83@=83C=83=
=8B=96=BC=82=F0=8E=E6=93=BE=82=B5=82=BD=82=A2</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT =
SIZE=3D2>=93=F1=90=EC=82=C5=82=B7=81B=82=A2=82=C2=82=E0=82=A8=90=A2=98b=82=
=C9=82=C8=82=C1=82=C4=82=A8=82=E8=82=DC=82=B7=81B</FONT>
</P>

<P><FONT =
SIZE=3D2>alpa=82=B3=82=F1=81A=88=A2=8Bv=8D=AA=82=B3=82=F1=81AReply=82=A0=82=
=E8=82=AA=82=C6=82=A4=82=B2=82=B4=82=A2=82=DC=82=B7=81B</FONT>
</P>

<P><FONT SIZE=3D2>=81=84=88=A2=8Bv=8D=AA=82=B3=82=F1Wrote:</FONT>

<BR><FONT SIZE=3D2>&gt; =
=88=C8=91OPOP3=83N=83=89=83C=83A=83=93=83g=82=F0=8D=EC=82=E9=82=BD=82=DF=82=
=C9=92=B2=8D=B8=82=B5=82=BD=8E=96=82=AA=82=A0=82=E8=82=DC=82=B7=81B</FONT=
>

<BR><FONT SIZE=3D2>&gt; multipart/mixed =82=C8</FONT>

<BR><FONT SIZE=3D2>&gt; =
=83=81=81[=83=8B=82=CC=93Y=95t=83t=83@=83C=83=8B=82=CC=96=BC=91O=82=F0=8E=
=E6=93=BE=82=B7=82=E9=82=C9=82=CD=81A=82=E2=82=CD=82=E8 =
imap_fetchstructure =8A=D6</FONT>

<BR><FONT SIZE=3D2>&gt; =
=90=94=82=F0=8Eg=97p=82=B5=82=DC=82=B7=81B</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; // =
=8AY=93=96=83=81=81[=83=8B=82=CC=8D\=91=A2=82=F0=82=E0=82=C2 Structure =
=83C=83=93=83X=83^=83=93=83X=82=CC=8D=EC=90=AC</FONT>

<BR><FONT SIZE=3D2>&gt; $Structure =3D imap_fetchstructure($POP3, =
$messageNum, FT_UID);</FONT>

<BR><FONT SIZE=3D2>&gt; // =
Content-Type=82=C8=82=C7=82=C5=94=BB=92f=82=B5=82=C4=81A=93Y=95t=83t=83@=83=
C=83=8B=82=CC=83p=81[=83g=82=F0 parts[]=82=C5=8Ew=92=E8=81B</FONT>

<BR><FONT SIZE=3D2>&gt; $attachmentName =3D =
$Structure-&gt;parts[1]-&gt;parameters[0]-&gt;value;</FONT>

<BR><FONT SIZE=3D2>&gt; </FONT>

<BR><FONT SIZE=3D2>&gt; =82=B1=82=EA=82=C5 $attachmentName =
=82=C9=93Y=95t=83t=83@=83C=83=8B=82=CC=96=BC=91O=82=AA=93=FC=82=E9=82=CD=82=
=B8=82=C5=82=B7=81B=93Y=95t=83t=83@=83C=83=8B</FONT>
</P>

<P><FONT SIZE=3D2>=82=C8=82=E9=82=D9=82=C7=81A$attachmentName =
=82=C5=8E=E6=93=BE=82=B7=82=EA=82=CE=82=E6=82=A9=82=C1=82=BD=82=ED=82=AF=82=
=C5=82=B7=82=CB=81B</FONT>

<BR><FONT =
SIZE=3D2>=91=E5=95=CF=97L=97p=82=C8=8F=EE=95=F1=82=A0=82=E8=82=AA=82=C6=82=
=A4=82=B2=82=B4=82=A2=82=DC=82=B7=81B=8C=BB=8D=DD=81A=8Am=94F=82=C5=82=AB=
=82=E9=8A=C2=8B=AB=82=AA=8E=E8=8C=B3=82=C9=96=B3=82=A2=82=CC=82=C5=82=B7=82=
=AA</FONT>

<BR><FONT =
SIZE=3D2>=82=C5=82=AB=82=E9=82=BE=82=AF=91=81=82=AD=8Am=94F=82=B5=82=C4=82=
=DD=82=BD=82=A2=82=C6=8Ev=82=A2=82=DC=82=B7=81B</FONT>
</P>

<P><FONT SIZE=3D2>&gt; =
=82=AA1=82=C2=82=BE=82=AF=82=C8=82=E7=82=CE=81A=82=BD=82=D4=82=F1 =
parts[1] =
=82=AA=82=BB=82=CC=93Y=95t=83t=83@=83C=83=8B=82=CC=83p=81[=83g=82=C9=82=C8=
=82=E9=82=CD=82=B8=81B</FONT>

<BR><FONT SIZE=3D2>&gt; =82=BF=82=C8=82=DD=82=C9 =
parameters=94z=97=F1=82=CC=83C=83=93=83f=83b=83N=83X=82=CC=88=D3=96=A1=82=
=CD=8E=84=82=E0=97=C7=82=AD=95=AA=82=A9=82=E8=82=DC=82=B9=82=F1=81B</FONT=
>

<BR><FONT SIZE=3D2>&gt; =82=C6=82=E8=82=A0=82=A6=82=B8 0 =
=82=F0=8Ew=92=E8=82=B5=82=C4=82=DC=82=B7=82=AA=81B=82=A0=82=C6=81Adparame=
ter=94z=97=F1=82=C6=82=A2=82=A4=82=CC=82=E0=82=A0=82=E8=82=DC=82=B7=82=AA=
</FONT>

<BR><FONT SIZE=3D2>&gt; =
=82=C8=82=C9=82=C9=8Eg=82=A4=82=F1=82=C5=82=B5=82=E5=82=A4=82=CB=81B</FON=
T>
</P>

<P><FONT =
SIZE=3D2>=82=BB=82=A4=82=C8=82=F1=82=C5=82=B7=81Bimap_fetchstructure=82=CD=
=83I=83u=83W=83F=83N=83g=94z=97=F1=82=AA=91=BD=82=B7=82=AC=82=C4=81A</FON=
T>

<BR><FONT =
SIZE=3D2>=89=BD=82=AA=82=C7=82=B1=82=C9=8Ai=94[=82=B3=82=EA=82=C4=82=A2=82=
=E9=82=CC=82=A9=81A=8D=AC=97=90=82=B5=82=C4=82=B5=82=DC=82=A2=82=DC=82=B7=
=82=CB=81B=82=A8=82=BB=82=E7=82=AD=83=81=83`=83=83=83=81=83`=83=83</FONT>=


<BR><FONT =
SIZE=3D2>=8Eg=82=A2=8F=9F=8E=E8=82=CC=97=C7=82=A2=8A=D6=90=94=82=C8=8A=B4=
=82=B6=82=AA=82=B7=82=E9=82=F1=82=C5=82=B7=82=AF=82=C7=81A=8F=EE=95=F1=82=
=AA=8F=AD=82=C8=82=B7=82=AC=82=E9=82=CC=82=AA=8Ec=94O=82=C5=82=B7=81B</FO=
NT>

<BR><FONT =
SIZE=3D2>=82=BF=82=C8=82=DD=82=C9=81@$attachmentName=81@=82=C6=82=A2=82=A4=
=91=AE=90=AB=96=BC=82=CD=82=C7=82=B1=82=C5=82=A8=92m=82=E8=82=C9=82=C8=82=
=C1=82=BD=82=CC=82=C5=82=B5=82=E5=82=A4=82=A9=81B=81B=81B</FONT>

<BR><FONT =
SIZE=3D2>=83\=81[=83X=82=C6=82=A9=81A=83w=83b=83_=83t=83@=83C=83=8B=82=F0=
=92=BC=90=DA=8C=A9=82=C4=82=DD=82=E9=82=B5=82=A9=82=C8=82=A2=82=CC=82=A9=82=
=C8=81B=81B=81B=81B</FONT>

<BR><FONT SIZE=3D2>&nbsp;</FONT>

<BR><FONT SIZE=3D2>&gt; =
=8E=84=82=CD=82=B1=82=B1=82=C5=83=81=81[=83=8B=82=C6MIME=82=CC=95=D7=8B=AD=
=82=F0=82=B5=82=DC=82=B5=82=BD=81B</FONT>

<BR><FONT SIZE=3D2>&gt; <A =
HREF=3D"http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html"=
>http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html</A></FO=
NT>
</P>

<P><FONT =
SIZE=3D2>=8E=84=82=E0=82=B1=82=B1=82=F0=8EQ=8Dl=82=C9=82=B5=82=DC=82=B5=82=
=BD^^&nbsp; =
SSL=82=CC=8F=DA=8D=D7=82=C8=82=F1=82=A9=82=E0=82=B1=82=B1=82=C5=95=D7=8B=AD=
=82=B5=82=BD=8BL=89=AF=82=AA=82=A0=82=E8=82=DC=82=B7=81B</FONT>

<BR><FONT =
SIZE=3D2>=94=F1=8F=ED=82=C9=82=ED=82=A9=82=E8=82=E2=82=B7=82=AD=90=AE=97=9D=
=82=B3=82=EA=82=C4=82=A2=82=E9=82=CC=82=C5=81A=82=A2=82=C2=82=E0=8Fd=95=F3=
=82=B5=82=C4=82=DC=82=B7=81B</FONT>
</P>

<P><FONT SIZE=3D2>=81=84alpha=82=B3=82=F1Wrote:</FONT>

<BR><FONT SIZE=3D2>&gt; =
=8EQ=8Dl=82=C9=82=C8=82=E9=82=A9=82=C7=82=A4=82=A9=82=CD=82=ED=82=A9=82=E8=
=82=DC=82=B9=82=F1=82=AA=96{=95=B6=82=C9filename=82=AA=8F=91=82=A9=82=EA=82=
=C4=82=A2=82=DC=82=B7=81B</FONT>

<BR><FONT SIZE=3D2>&gt; =
=93=AF=82=B6=82=E6=82=A4=82=C9=8E=E6=93=BE=82=C5=82=AB=82=C8=82=A2=82=E0=82=
=CC=82=C5=82=B5=82=E5=82=A4=82=A9=81H</FONT>
</P>

<P><FONT =
SIZE=3D2>=96{=95=B6=82=C6=82=A2=82=A4=82=A9=81AContent-Disposition=82=C5=82=
=B7=82=CB=81B</FONT>

<BR><FONT =
SIZE=3D2>=8Am=82=A9=82=C9=82=B1=82=B1=82=C9=83t=83@=83C=83=8B=96=BC=82=AA=
=8Ai=94[=82=B3=82=EA=82=E9=8F=EA=8D=87=82=E0=82=A0=82=E9=82=F1=82=C5=82=B7=
=82=AA=81A</FONT>

<BR><FONT =
SIZE=3D2>=82=A8=82=BB=82=E7=82=AD=91=97=90M=91=A4=82=CC=83=81=81[=83=8B=83=
N=83=89=83C=83A=83=93=83g=82=C9=88=CB=91=B6=82=B7=82=E9=82=CC=82=BE=82=C6=
=8Ev=82=A2=82=DC=82=B7=82=AA=81A</FONT>

<BR><FONT =
SIZE=3D2>=83w=83b=83_=82=CC=8BL=8Fq=82=AADisposition=82=C9=82=CD=96=B3=82=
=A2=8F=EA=8D=87=82=E0=82=A0=82=C1=82=BD=82=CC=82=C5=82=B7=81B</FONT>

<BR><FONT =
SIZE=3D2>=82=BF=82=C8=82=DD=82=C9=81ADiposition=82=CC=93=E0=97e=82=E0=81@=
&quot;Attachment&quot;=82=DC=82=C5=82=CD</FONT>

<BR><FONT =
SIZE=3D2>=8E=E6=93=BE=82=C5=82=AB=82=BD=82=F1=82=C5=82=B7=82=AF=82=C7=81A=
=82=BB=82=CC=90=E6=82=AA=81B=81B=81B=81B</FONT>

<BR><FONT SIZE=3D2>=82=DE=82=B5=82=EBimap_body() =
=82=C5=82=DC=82=E9=82=DC=82=F1=82=DC=8FE=82=C1=82=C4=82=AB=82=C4=81A</FON=
T>

<BR><FONT =
SIZE=3D2>=8E=A9=95=AA=82=C5Parse=82=B7=82=EA=82=CE=8Am=8E=C0=82=C8=82=CC=82=
=A9=82=E0=82=B5=82=EA=82=DC=82=B9=82=F1=82=CB=81B</FONT>

<BR><FONT =
SIZE=3D2>=82=C6=82=E0=82=A0=82=EA=81A=8F=EE=95=F1=82=A0=82=E8=82=AA=82=C6=
=82=A4=82=B2=82=B4=82=A2=82=DC=82=B5=82=BD=81B</FONT>
</P>

<P><FONT =
SIZE=3D2>=89=F0=8C=88=82=B5=82=BD=82=E7=82=DC=82=BD=82=B2=95=F1=8D=90=82=B5=
=82=DC=82=B7=81B</FONT>

<BR><FONT SIZE=3D2>*************************************</FONT>

<BR><FONT SIZE=3D2>Jun Futakawa(2kawa@crypton.co.jp)</FONT>

<BR><FONT SIZE=3D2>*************************************</FONT>
</P>

</BODY>
</HTML>
------=_NextPart_000_0000_01C1712C.5DB30E80--