在下载附件时,我得到了一个额外的File
类型的文件。我正在使用MimeBodyPart.saveFile()
这是我的下载附件代码
for (MimeBodyPart mbp : msgToDownload.getAttachmentList()) {
updateProgress(msgToDownload.getAttachmentList().indexOf(mbp),
msgToDownload.getAttachmentList().size());
mbp.saveFile(DOWNLOAD_LOCATION + mbp.getFileName());
}
这里msgToDownload
是一个将Message msg
作为参数和其他一些参数的类。getAttachmentList()
是定义为List的MimeBodyPart类型的列表
sb.setLength(0);
msgToRender.clearAttachments();
Message msg = msgToRender.getMsgRef();
try {
// String messageType = msg.getContentType();
sb.append(getText(msg));
if (hasAttachments(msg)) {
Multipart mp = (Multipart) msg.getContent();
for (int i = mp.getCount() - 1; i >= 0; i--) {
BodyPart bp = mp.getBodyPart(i);
MimeBodyPart mbp = (MimeBodyPart) bp;
msgToRender.addAttachment(mbp);
}
}
}catch(Exception e){
}
额外文件包含邮件文本部分的属性。额外文件的内容
-001a114fd0aa0b377d0546bb84a0 Content-Type: text/平原; charset=UTF-8请找到附件...--001a114fd0aa0b377d0546bb84a0 Content-Type: text/html; charset=UTF-8请找到附件...--001a114fd0aa0b377d0546bb84a0--
首先,您应该了解isMimeType方法。
问题很可能是您没有处理多部分/可选消息。请参阅JavaMail常见问题解答中的示例代码。
我试图通过javamail和imap从我的电子邮件下载所有新的电子邮件附件。这一切都很好,但有些附件在PDF中被解码为BASE64,这是我的声明 如何获取此附件并将其下载到硬盘? 到目前为止已经尝试过了,第一个IF语句使用Base64解码捕获附件。 如果有一种简单易行的方法可以将附件下载到我的磁盘,也可以使用NodeJS。尝试过node-imap,但我在那里遇到了同样的错误。
最近我在通过oracle-javamail从我的电子邮件下载CSV时遇到了一个问题。我发现第一个工作正常(来自大型机服务器),但是第二个csv附件似乎是“应用程序/vnd.ms-excel”,当它显然是一个. csv文件时,就像另一个下载完全正常的文件一样。 我在这两个问题上使用了相同的代码,但找不到有关此问题的任何信息。 如果我把那封电子邮件发给自己,我可以神奇地下载附件而没有任何问题。任何帮助
如何从内容类型为“多部分/备选”的邮件中下载附件;
我正在使用进行下载任务,我希望显示速度和时间以及“进度百分比”。我正在中使用。 解决方案
我使用下面的代码将pdf文件附加到邮件(JAVAMAIL)中。这个位置工作完美,并添加附件到我的邮件,但这邮件没有任何正文。 当我将下面的行添加到我的代码中时,它会删除附件并发送给我只包含文本的邮件。 请帮助我添加附件和测试体到我的邮件。
将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。