gpt4 book ai didi

java - 通过保持文本位置在 Java 中阅读电子邮件

转载 作者:行者123 更新时间:2023-11-30 10:12:57 24 4
gpt4 key购买 nike

我正在尝试使用 Java 阅读电子邮件。我正确收到了收件箱邮件。但问题是文本正文是逐行显示的。我需要邮件中显示的正文,即输出文本应与邮件中显示的顺序相同(改写建议:“表格对齐”)。

这是我用来从 Message 对象获取正文的代码,

private static String getTextFromMessage(Message message) throws MessagingException, IOException
{
String result = "";
if (message.isMimeType("text/plain"))
{
result = message.getContent().toString();
}
else if (message.isMimeType("multipart/*"))
{
MimeMultipart mimeMultipart = (MimeMultipart) message.getContent();
result = getTextFromMimeMultipart(mimeMultipart);
}
return result;
}

private static String getTextFromMimeMultipart(MimeMultipart mimeMultipart) throws MessagingException, IOException
{
String result = "";
int count = mimeMultipart.getCount();
for (int i = 0; i < count; i++)
{
BodyPart bodyPart = mimeMultipart.getBodyPart(i);
if (bodyPart.isMimeType("text/plain"))
{
result = result + "\n" + bodyPart.getContent();
break;
}
else if (bodyPart.isMimeType("text/html"))
{
String html = (String) bodyPart.getContent();
result = result + "\n" + org.jsoup.Jsoup.parse(html).text();
}
else if (bodyPart.getContent() instanceof MimeMultipart)
{
result = result + getTextFromMimeMultipart((MimeMultipart) bodyPart.getContent());
}
}
return result;
}

例如邮件内容是这样的:
image .

我需要输出为,

Beschreibung     Stückpreis   Anzahl            Betrag  
22545047 106,56 EUR 1 €106,56 EUR

如邮件中所示。

但是我得到了输出,

Beschreibung



Stückpreis



Anzahl



Betrag

22545047



106,56 EUR



1



€106,56 EUR

谁能帮我解决这个问题。提前致谢

顺便说一下,“描述”、“每件价格”、“件数”、“这种商品的总价”这些奇怪的词是德语。 IE。它们形成一个法案,与问题无关。

最佳答案

您似乎不喜欢在某些“呈现”方法中明确插入的换行符。

为了摆脱它们,删除所有出现的

+ "\n"

在您的代码中。

然后考虑在输出末尾添加一个+ "\n"

如果您输出的文本是 html-> 纯文本转换的结果,您将失去由 html 渲染创建的表格对齐方式。没有“十个空格”。为了将对齐信息转换为 ascii-art(用于对齐列的空格),您必须对 html 标记进行一些深入分析并得出适当数量的空格以插入。

关于java - 通过保持文本位置在 Java 中阅读电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51587597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com