繁体   English   中英

如何在不下载附件文件的情况下获取电子邮件正文

[英]How do I can fetch the email body without downloading the attachment file

此问题与Java Mail API和Gmail帐户有关。

我想通过忽略附件文件来显示gmail电子邮件中的消息部分。 我的代码在没有附件的情况下正常工作,但是当涉及带附件的电子邮件时,它不提供输出。

我只想显示电子邮件中的邮件正文。

提前致谢。

这只是在没有尝试调试代码的情况下首次拍摄,但您可以尝试遵循原始的Oracle建议

private boolean textIsHtml = false;

    /**
     * Return the primary text content of the message.
     */
    private String getText(Part p) throws
                MessagingException, IOException {
        if (p.isMimeType("text/*")) {
            String s = (String)p.getContent();
            textIsHtml = p.isMimeType("text/html");
            return s;
        }

        if (p.isMimeType("multipart/alternative")) {
            // prefer html text over plain text
            Multipart mp = (Multipart)p.getContent();
            String text = null;
            for (int i = 0; i < mp.getCount(); i++) {
                Part bp = mp.getBodyPart(i);
                if (bp.isMimeType("text/plain")) {
                    if (text == null)
                        text = getText(bp);
                    continue;
                } else if (bp.isMimeType("text/html")) {
                    String s = getText(bp);
                    if (s != null)
                        return s;
                } else {
                    return getText(bp);
                }
            }
            return text;
        } else if (p.isMimeType("multipart/*")) {
            Multipart mp = (Multipart)p.getContent();
            for (int i = 0; i < mp.getCount(); i++) {
                String s = getText(mp.getBodyPart(i));
                if (s != null)
                    return s;
            }
        }

        return null;
    }

我认为您正在尝试从中获取MultiPart和内容存在问题。 上述代码仅在以下情况下有效:

您可以使用Message对象(它是一个Part)调用getText方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM