如何阅读带附件的邮件并从内容字符串中保存附件?

时间:2014-03-24 12:35:08

标签: java apache email gmail javamail

我使用java邮件从带有附件的gmail获取电子邮件,附件在内容中以字符串形式出现,如何将其转换为文件?

由于

这就是我得到的

Content :
begin 644 myfile.csv
M(E-T871U<R(L(E-T87)T(BPB4W1A<G0@9&%T92(L(E-T87)T('1I;64B+")%
M;F0B+")%;F0@9&%T92(L(D5N9"!T:6UE(BPB0V%L;&EN9R!C=7-T;VUE<B(L
.................
end

Object content = message.getContent();
            if (content instanceof String) {//here I got the attachment
                System.out.println(content);
            } else if (content instanceof Multipart) {
                Multipart multiPart = (Multipart) content;
                procesMultiPart(multiPart);
            }

1 个答案:

答案 0 :(得分:0)

看起来你有一个带有uuencoded内容的单个部分消息。如果使用&#34; uuencode&#34;的Content-Transfer-Encoding标头正确格式化了消息,JavaMail将自动为您解码。但它看起来不是。您可以使用以下方法自行解码:

InputStream is = MimeUtility.decode(message.getInputStream(), "uuencode");

然后读取输入流以获得解码数据,例如将其复制到文件中。