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

标签 java jakarta-mail

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

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

当我打印 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();

        }

我正在尝试获取 INFOCOA.ZIP 文件。提前致谢。

最佳答案

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

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

关于java - 从多部分/替代消息中获取字符串形式的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56385612/

相关文章:

Java 类祖先流

java - 可能的 Java For 循环问题

java - 使用 Tomcat 发布站点

java - 如何在 Spring Integration 中轮询时根据主题过滤电子邮件

JavaMail SSL 无论如何都没有身份验证信任证书

jakarta-mail - IMAP messageChangedListener() 没有被解雇

java - 在 Spring mvc 中设置日期和时间

java - 如何使用Spring正确获取用户列表?

java - 如何添加文件找不到此代码的异常(exception)?

java - 无效地址;嵌套异常是 :com. sun.mail.smtp.SMTPAddressFailedException : 501 5. 5.2 RCPT TO 语法错误(当我尝试发送邮件时)