从多部分/替代消息中以字符串形式获取附件

时间:2019-05-30 21:03:20

标签: java javamail

我有一个例程,必须从包含multipart / ALTERNATIVE的电子邮件中下载附件。附件以字符串形式出现,尝试将其正确保存到硬盘驱动器时遇到麻烦。

我能够下载电子邮件内容,但无法打开它,说档案已损坏,并且看起来缺少某些部分。

当我打印contentType和Encoding时,得到以下结果:

content type of email: multipart/ALTERNATIVEboundary=000000000000b1955e0589a4192e

Content type of the part of message: TEXT/PLAIN; charset=UTF-8

Encode: QUOTED-PRINTABLE

这是我要获取附件的电子邮件的一部分:

begin 600 INTFOCOA.ZIP
M4$L#!!0````(`-I[MTX@BC)`.UI$`(Y71``5````4$%$4D%/,#%?1D]#3RY4
M6%0N0U-"`%"`KW\Y[::&9%]=.4>H(KX):(05"[CW`%*7_+:QH
--------------------end
for (Message message : messages) {          
            Multipart multiPart = (Multipart) message.getContent();
            MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(0);        
            String destFilePath = "C:\\Users\\fribeiro\\Desktop\\arquivo_santander\\testname";
            FileOutputStream output = new FileOutputStream(destFilePath);           
            InputStream input = part.getInputStream();
            byte[] buffer = new byte[4096];
            int byteRead;
            while ((byteRead = input.read(buffer)) != -1) {
                output.write(buffer, 0, byteRead);
            }
            output.close();

        }

我正在尝试获取INTFOCOA.ZIP文件。预先感谢。

1 个答案:

答案 0 :(得分:0)

如果是zip文件,则该部分的内容为uuencoding

您需要对其应用uudecode算法以获取zip文件。
例如。参见Does Java has any standard mechanism for uudecoding?