从多部分/替代消息中获取附件作为字符串[重复]

Posted

技术标签:

【中文标题】从多部分/替代消息中获取附件作为字符串[重复]【英文标题】:Get attachment as string from multipart/ALTERNATIVE message [duplicate] 【发布时间】:2019-10-16 13:03:49 【问题描述】:

我有一个例程,我必须从多部分/替代的电子邮件中下载附件。附件以字符串形式出现,我在尝试将其正确保存到硬盘时遇到了问题。

我可以下载电子邮件内容,但无法打开它,说存档已损坏,似乎缺少部分。

当我打印 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】:

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

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

【讨论】:

以上是关于从多部分/替代消息中获取附件作为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 java 从多部分数据中读取正文内容?

将自定义验证规则作为字符串传递并获取所有验证消息

jQuery post ajax函数[重复]

java 生成UUID重复

Python email lib - 如何从现有邮件中删除附件?

GWT:如何从多部分表单(文件)上传返回(和处理)错误