使用mac邮件服务后,我将面临这个问题。
能够读取附件,如果我使用outlook或gmail。
一段代码,我从邮件中读取附件。
if (contentType.contains("multipart"))
{
Multipart multiPart = (Multipart) msg.getContent();
int partCount = multiPart.getCount();
for (int j = 0; j < partCount; j++)
{
BodyPart part = multiPart.getBodyPart(j);
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) // getting null here
{
attachmentProcessing = true;
InputStream is;
is = part.getInputStream();
f = new File(filePath + part.getFileName());
fileArray.add(f);
FileOutputStream fos = new FileOutputStream(f);
byte[] buf = new byte[4096];
int bytesRead;
while((bytesRead = is.read(buf))!=-1) {
fos.write(buf, 0, bytesRead);
}
fos.close();
}
}
}mac邮件服务的详细信息:
文本/纯文本;字符集=us-ascii part.getDisposition() = null 多部分/混合;boundary="Apple-Mail=_C50D7E2D-27A1-4449-BAA3-5DC9D1E522AF“
还有其他人
多部分/混合;boundary="----=_NextPart_000_0033_01D28DC6.C9D0C8B0“ 文本/纯文本;name=HashTagList.txt;charset=us-ascii part.getDisposition() =附件
发布于 2017-02-27 20:00:40
处理是可选的;并非所有带有“附件”的消息都将设置该处理。JavaMail常见问题有更多的信息。
此外,与其检查内容类型中的字符串"multipart“,不如使用isMimeType方法并检查"multipart/mixed”。
有关更多示例和详细信息,请参阅msgshow.java示例程序。
https://stackoverflow.com/questions/42479889
复制相似问题