2011-01-22 5 views
1

UW IMAP c-client v。2007eを使用していますが、次の機能が見つかりませんでした。特定のボディパートのヘッダーを取得する必要があります。すなわち、電子メールメッセージは、複数の身体の部分が含まれ、そのうちの一つはこのように見ている添付ファイルである:IMAP Cクライアントでボディパートヘッダーを取得

--_004_57D6D2035A40B8ECEBA59CB9C13F52A1334093MBXC18_ 
    Content-Type: text/plain; name="func.txt" 
    Content-Description: func.txt 
    Content-Disposition: attachment; filename="func.txt"; size=604; 
    creation-date="Thu, 12 Aug 2010 18:41:40 GMT"; 
    modification-date="Thu, 12 Aug 2010 18:41:40 GMT" 
    Content-Transfer-Encoding: base64 

    ...blah-blah-blah in base64... 

、私はimap_fetchbody()で何とか-何とか部分を取得することができますが、私ができる機能が表示されません私にヘッダーの部分だけを渡してください(またはヘッダー+ボディー、それもOKです)。私はメッセージ本文全体を得ることができますが、それから私はそれを自分自身で解析しなければならない部分に分けなければなりません。特定の部分に対してこのヘッダを取得する方法はありますか?

答えて

1

部品のMIMEセクションが必要です。 From the IMAP RFC

MIMEパート指定子は この部分のための[MIME-IMB]ヘッダーを指します。

FETCHを行うためのCクライアント機能は次のとおりです。

:あなたは(例えば)メッセージ#8の一部2.3からヘッダをしたい場合は

long imap_msgdata (MAILSTREAM *stream,unsigned long msgno,char *section, 
        unsigned long first,unsigned long last,STRINGLIST *lines, 
        long flags) 

だから、あなたはとしてそれを呼びたいです

imap_msgdata(stream, 8, "2.3.MIME", 0, 0, null, FT_PEEK); 

FT_PEEK\Seenとしてマークされてからメッセージを保持します。あなたが読んでメッセージをマークしたい場合は、最後の引数として0を渡す。)

+0

もっと一般的なものもあるようです - 'mail_fetch_mime()'。しかし、それは私が必要としているようです、ありがとう。 – StasM

+0

@StasM:情報ありがとう!私は 'mail_fetch_mime()'について知らなかった... – dkarp

関連する問題