如何从IMAP消息中确定附加文件的大小

时间:2009-02-07 17:37:38

标签: file java-me email size imap

我正在编写在J2ME上运行的IMAP邮件应用程序。这是我的高级项目。

首先,我想知道是否有任何IMAP消息只能获取消息正文,而不包括附件?

当我将消息发送到IMAP服务器时,如..

。获取20个主体[text]

IMAP服务器将像

一样响应

< - BODY PART - >

--- MOQ1233897306fd448beb67b3c728ca47f0f5c3dbef2f 内容类型:image / jpeg; NAME = “card.jpg” 内容传输编码:base64 内容 - 处理:附件;文件名= “card.jpg” / 9J / 4RPsRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAA ...

所以,我不知道如何让身体不是附件!? 在加载所有这些消息并计算文件大小之前,如何知道消息中的文件大小和附加文件数?

如果有人知道这件事,请帮助我。 非常感谢你。

1 个答案:

答案 0 :(得分:4)

您必须向服务器询问该消息的BODYSTRUCTURE:

FETCH 20 BODYSTRUCTURE

然后,您必须解析响应并确定是否存在附件。以下是带有纯文本部分和三个附加图像的消息的示例响应:

20 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" ("CHARSET" "ISO-8859-15" "FORMAT" "flowed") NIL NIL "8BIT" 950 30 NIL NIL NIL)("IMAGE" "JPEG" ("NAME" "r001-023.jpg") NIL NIL "BASE64" 1708116 NIL ("INLINE" ("FILENAME" "r001-023.jpg")) NIL)("IMAGE" "JPEG" ("NAME" "r001-022.jpg") NIL NIL "BASE64" 2077114 NIL ("INLINE" ("FILENAME" "r001-022.jpg")) NIL)("IMAGE" "JPEG" ("NAME" "r001-012.jpg") NIL NIL "BASE64" 2374832 NIL ("INLINE" ("FILENAME" "r001-012.jpg")) NIL) "MIXED" ("BOUNDARY" "------------090105040606010906000608") NIL NIL))