2011-01-22 13 views
1

我正在使用UW IMAP c-client訴2007e,但我找不到以下功能:我需要檢索某個正文部分的標頭。即,郵件中包含多個正文部分,其中之一就是尋找這樣的一個附件:使用IMAP獲取正文部分頭C-Client

--_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()的誇誇其談的一部分,但我沒有看到的功能,可以給我只有標題部分(或頭+身體,這也可以)。我可以得到整個消息文本,但是我不得不將它自己解析爲部分,我不想這樣做。有什麼辦法可以讓c-client爲某個部分檢索這個頭文件?

回答

1

您需要零件的MIME部分。 From the IMAP RFC

MIME部分說明符指的是用於 這部分[MIME-IMB]報頭。

做一個FETCH的C客戶機的功能是:

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

所以,如果你的消息#8(例如),你會稱呼其爲部分2.3所需的標題:

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

FT_PEEK一直被標記爲\Seen的消息。如果你想標記閱讀信息,通過0作爲最後一個參數。)

+0

看起來還有更通用的一個 - `mail_fetch_mime()`。但那似乎是我需要的,謝謝。 – StasM 2011-01-22 06:51:23