0

我目前正在编写一个应用程序,它应该扫描用户邮件中的特定附件并从电子邮件中提取它们。

我使用 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());
        }
    }
}

关于这里发生的事情有什么想法吗?提前致谢 :-)

4

1 回答 1

0

听起来像是 Google App Engine 中的错误。

您正在从同一个电子邮件服务器阅读相同的电子邮件,对吧?

也许由于(潜在的)病毒问题而删除/隐藏了附件?

如果打开 JavaMail 会话调试,调试输出会显示什么?

于 2013-05-29T22:31:42.150 回答