2010-01-14 77 views
3

我需要一些幫助來制定IMAP抓取命令來只抓取某個MIME附件而不抓取整個身體或其他附件。鑑於以下bodystructureIMAP抓取MIME部分而不抓取整個郵件

(BODYSTRUCTURE (("text" "html" ("charset" "utf-8") NIL NIL "base64" 568 8 NIL NIL NIL) "mixed" ("boundary" "===============0621936444==") NIL NIL)) 

如何獲取命令獲取文本/ html部分看起來像? 我已經幾次閱讀RFC3501的第6.4.5節,但我仍然不明白。任何指向MIME附件獲取請求的更多示例的指針也將被讚賞。

回答

6

關閉我的頭頂,這將是這樣的:

FETCH 88 BODY.PEEK[1] 

,其中88是第88消息,1是身體的一部分。

+0

1不是身體的一部分,而是我試圖抓取的文本/ html部分,在BODYSTRUCTURE響應中可見的每個連續部分都被編號並可以通過這種方式獲取。謝謝。 – pysnake 2010-01-14 14:32:55

3

嘗試這一個:

FETCH uid BODY.PEEK[1.2] 
1

UID FETCH uid_of_the_mail BODY[1.2]是第一內嵌附件。那麼,對於Gmail,1爲TEXT,2-N爲附件。 1.1爲TEXT,1.2應爲第一個內聯附件,1.N-1應爲第N個內聯附件。

-1

首先,你需要解析bodystructure響應,然後找到每個部分部分的字符串,一旦你完成了每個部分的部分字符串,那麼你可以獲取所需的部分mime。

假設你需要獲取第一部分MIME然後命令應該是這樣的

。 FETCH msgno(BODY [1.MIME])