INDY9.0を使い、受信したメールの本文を取得しようと思います。
以下のようにプログラムしております。
szBody: string;
Msg : TIdMessage;
IdPOP3.Retrieve( 1, Msg )
// 本文
if( Msg.MessageParts.Items[0] is TIdText )then
szBodyTmp := TIdText( Msg.MessageParts.Items[0] ).Body.Text;
このように記述すると、添付なしテキストメール・添付つきテキストメール・添付なしHTMLメールは本文を取得できるのですが、添付つきHTMLメールだけは本文を受け取ることができません。
どの形式にも対応できる本文取得方法はありますか?
if not Msg.IsMsgSinglePartMime then
for i := 0 to Msg.MessageParts.Count-1 do
ShowMessage( Msg.MessageParts.Items[i].DisplayName );
ありがとうございます。
Msg.MessageParts.Items[i].DisplayNameが TIdTextの時、Bodyを
取得すると良さそうです。
HTML・添付アリの場合、最初は改行のみが入ってくるのでそれを読み飛ばす
処理が必要ですね。
#Indy9にはIsMsgSinglePartMimeのプロパティはないみたいです
if Msg.MessageParts.Items[i] is TIdText then
のほうが楽かも
TIdText( Msg.MessageParts.Items[i]).body
Msg.MessageParts.Items[i].ContentType
最新のは Ver10みたいです
ここから だうんろーどできます
http://www.indyproject.org/download/Borland.iwp
ツイート | ![]() |