当我尝试从电子邮件中检索消息正文时,它以半句话和奇怪的格式出现。任何帮助都会很棒...
代码:
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/