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

标签 java api email

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

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

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

提前致谢。

最佳答案

这只是第一次尝试,没有尝试调试您的代码,但您可以尝试遵循 original Oracle suggestion :

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 和内容时存在问题。 上面的代码仅在以下情况下有效:

You can call the getText method with a Message object (which is a Part).

关于java - 如何在不下载附件文件的情况下获取电子邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653832/

相关文章:

api - 是否可以通过 API 检索 github.com 中的审核日志?

javascript - Facebook javascript sdk 不返回电子邮件地址

php - 为什么 HTML 电子邮件的一部分在电子邮件客户端中显示为文本?

java - Selenium 单击有时会导致页面加载,有时不会

java - 在多行中读取多个整数

java - CountdownLatch 任务完成后的 countDown 方法行为

java - Eclipse 中带有 TestNG 插件的 @BeforeSuite 和 @AfterSuite 的问题

ios - 如何从 API 添加标志图像?

IOS api 连续调用

python - Django - 从联系表单发送电子邮件时 SMTPSenderRefused