2013-01-17 111 views
0

我正在創建一個具有API功能的電子郵件客戶端。其中一項功能是提供一個API調用來下載給定的附件。使用BODY部件獲取IMAP附件

要獲取附件,給定文件名和唯一的電子郵件ID(使用GMail X-MSG-ID唯一標識符),我使用帶有RFC822命令的FETCH命令下載整個電子郵件。這自然很重。

我想要做的只是下載附件的BODY部分,例如BODY [1],BODY [2]等。我知道獲取BODYSTRUCTURE會給我一個格式列表( 「份」, 「ETC」)( 「部分」, 「ETC」)。我想知道的是這些零件如何映射到BODY [0],BODY [1]等。

部件是否出現在BODYSTRUCTURE響應中直接映射到BODY索引的順序?因此,如果調用BODYSTRUCTURE I(「123」,「ETC」)(「456」,「ETC」)(「789」,「ETC」),我可以假設BODY [0]是「123」 [1]是「456」?或者還有另一種方法可以將BODYSTRUCTURE響應中的括號中的元素映射到BODY [0],BODY [1]等?

謝謝

回答

0

我已經通過反覆試驗解決了這個問題。

它會出現BODY indeces,因爲它們出現在BODYSTRUCTURE響應中。因此,使用上面的例子,如果在BODYSTRUCTURE響應中獲得(「123」,「ETC」)(「456」,「ETC」),則當您調用BODY [1]時,您將獲得「123」當你打電話給BODY [2]時,你將獲得「456」,依此類推。