我目前正在编写一个应用程序,它应该扫描用户邮件中的特定附件并从电子邮件中提取它们。
我使用 Javamail 连接到邮箱、检索消息并解析电子邮件内容。当我检索带有一个附件的邮件时,Javamail 给了我一个包含 3 个正文部分的 MultiPart 对象:纯文本电子邮件、html 电子邮件和附件。
但是,如果我在 Google App Engine 环境中运行相同的代码来检索相同的电子邮件,我只会得到 2 个正文部分:纯文本电子邮件和 html 电子邮件。附件不见了。不过,附件内容在原始输入流中可用。
这是我用来检索和解析消息的代码部分:
Message[] messages = emailFolder.getMessages();
for(Message message : messages) {
MimeMessage msg = new MimeMessage(emailSession, message.getInputStream());
if(msg.getContent() instanceof Multipart) {
Multipart multipart = (Multipart) msg.getContent();
for(int i = 0; i < multipart.getCount(); i++) {
BodyPart bodyPart = multipart.getBodyPart(i);
System.out.println("ContentType: " + bodyPart.getContentType());
}
}
}
关于这里发生的事情有什么想法吗?提前致谢 :-)