javamail - 获取邮件正文内容格式错误

标签 java email formatting jakarta-mail mime-message

当我尝试从电子邮件中检索消息正文时,它以半句话和奇怪的格式出现。任何帮助都会很棒...

代码:

protected void dumpPart(Part p) throws MessagingException, IOException
    {
        if (p.isMimeType("text/plain"))
        {
            if (!p.getContent().toString().equals(null))
                System.out.println((String)p.getContent());

        }
        else if (p.isMimeType("multipart/*"))
        {
            Multipart mp = (Multipart)p.getContent();

            for (int x = 0; x < mp.getCount(); x++)
            {
                dumpPart(mp.getBodyPart(x));
            }
        }
    }

输出:

PNM 在 RP00-626 中抗议的要点是我们不应该能够

对我们的不平衡 Netty 结算和交易收取运输或燃油费

服务。

我向 PNM 提出异议,我们的关税语言是

含糊不清。

最佳答案

我想我看到了问题所在。

您正在对消息进行分块。

当您对每个 block 调用 dumpPart 时,它会以新行打印出来。因此,如果您的消息被分块链接此

A: The gist of PNM's protest in RP00-626 is that we shouldn't be able to
B: charge a transport or fuel fee for our imbalance netting and trading
C: service.

然后,当您重新组装它时,您将在每个 block 之后插入新行。

这样做会删除换行符。

protected void dumpPart(Part p, StringBuilder sb) throws MessagingException, IOException
    {
        if (p.isMimeType("text/plain"))
        {
            if (!p.getContent().toString().equals(null))
                sb.append((String)p.getContent());

        }
        else if (p.isMimeType("multipart/*"))
        {
            Multipart mp = (Multipart)p.getContent();

            for (int x = 0; x < mp.getCount(); x++)
            {
                dumpPart(mp.getBodyPart(x), sb);
            }
        }
    }

关于javamail - 获取邮件正文内容格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14588939/

相关文章:

java - 无需身份验证/没有发件人密码即可发送 java 电子邮件

eclipse - 有没有办法在 Eclipse 中手动折叠代码?

java - AndroidManifest.xml 中的元数据标签没有正确的值

html - 无法调试 Gmail Mobile 的电子邮件模板

shell - 使用 shell 脚本发送邮件不起作用

r - 在 R 中为卡方检验格式化数据

string - 如何从 Rust 中的文字创建格式化字符串?

java - 我有 spring mvc 和瓷砖。现在我需要用户控制

Java System.arraycopy 将目标大小调整为源大小?

java - 我可以在接口(interface)中拥有一个表示常量的字段,然后实现类可以设置该常量吗?