使用BODY部件获取IMAP附件

时间:2013-01-17 03:58:47

标签: imap mime

我正在创建一个包含API功能的电子邮件客户端。其中一项功能是提供API调用以下载给定的附件。

要获取附件,给定文件名和唯一的电子邮件ID(使用GMail X-MSG-ID唯一标识符),我使用带有RFC822命令的FETCH命令下载整个电子邮件。这自然很重。

我想要做的只是下载作为附件的BODY部分,例如BODY [1],BODY [2]等。我知道获取BODYSTRUCTURE会给我一个格式的部分列表(“ PART”, “ETC”)( “部件”, “ETC”)。我想知道的是这些部分如何映射到BODY [0],BODY [1]等。

部件出现在BODYSTRUCTURE响应中的顺序是否直接映射到BODY索引?因此,如果调用BODYSTRUCTURE我获得(“123”,“ETC”)(“456”,“ETC”)(“789”,“ETC”),我可以假设BODY [0]是“123”并且该BODY [1]是“456”?或者是否有另一种方法将BODYSTRUCTURE响应中的元素映射到BODY [0],BODY [1]等?

谢谢

1 个答案:

答案 0 :(得分:0)

我通过反复试验解决了这个问题。

看起来BODY indeces与BODYSTRUCTURE响应一样。因此,使用上面的例子,如果你在BODYSTRUCTURE响应中得到(“123”,“ETC”)(“456”,“ETC”),那么当你调用BODY [1]时,你将得到“123”部分,当你打电话给BODY [2]时,你将获得“456”,依此类推。