【问题标题】:GAE - Javamail API getting null content mailGAE - Javamail API 获取空内容邮件
【发布时间】:2013-12-06 10:19:36
【问题描述】:

我正在使用这段代码从我的 Gmail 帐户中检索最新的电子邮件。

        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imaps");

        try {

            Session session = Session.getInstance(props, null);
            Store store = session.getStore();
            store.connect("imap.gmail.com", "<username@gmail.com>", "<password>");
            Folder inbox = store.getFolder("INBOX");
            inbox.open(Folder.READ_ONLY);
            MimeMessage msg = (MimeMessage) inbox.getMessage(inbox.getMessageCount());
            Address[] in = msg.getFrom();
            for (Address address : in) {
                resp.getWriter().println("FROM:" + address.toString());
            }
            Multipart mp = (Multipart) msg.getContent();
            BodyPart bp = mp.getBodyPart(0);
            resp.getWriter().println("SENT DATE:" + msg.getSentDate());
            resp.getWriter().println("SUBJECT:" + msg.getSubject());
            resp.getWriter().println("CONTENT:" + bp.getContent());
        } catch (Exception mex) {
            mex.printStackTrace();
        }

它作为一个普通的 Java 应用程序运行良好。但是,当我在 Google App Engine 上运行的 Servlet 中将其用作函数时,它只能获取 FROM 地址,内容为 null。
msg.getFrom() 工作正常,但 msg.getContent() 仅返回 null。
感谢大家的帮助。

【问题讨论】:

    标签: java google-app-engine jakarta-mail


    【解决方案1】:

    我也有这个问题。

    请仅使用允许的 MIME 类型。

    或者您可以尝试将类型从原始类型更改为“text/html”。

    【讨论】:

      【解决方案2】:

      出于安全原因,GAE 限制了您可以通过 JavaMail 接收的内容类型。消息部分和附件必须是几种允许的类型之一,并且附件文件名必须以该类型的可识别文件扩展名结尾。 Here 您可以找到所有允许的 MIME 类型的列表。我想您的邮件内容不符合这些限制,这就是您获得空值的原因。

      恐怕没有办法绕过这个限制。但是,您应该考虑您的应用程序是否可以只使用允许的 MIME 类型。它们的数量很多,所以它毕竟不应该是非常严格的。

      您可以尝试的其他解决方案描述为here

      【讨论】:

      • 感谢您的解释。这是否意味着电子邮件的内容取决于发件人,而作为读者,如果他们发送不允许的邮件内容,我们将无能为力?顺便说一句,我正在测试的电子邮件只是纯文本,但它仍然不起作用.
      • Afaik 阅读器无法修复不允许的 mime 类型。至于纯文本邮件,您将邮件解析为 MultiPart,而纯文本邮件将字符串作为内容,而不是 MultiPart。所以我想这封邮件并不像看起来那么简单。
      猜你喜欢
      • 1970-01-01
      • 2013-04-05
      • 2018-04-23
      • 2013-01-13
      • 2015-04-23
      • 2016-07-19
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      相关资源
      最近更新 更多