我已经创建了一个基本的电子邮件客户端,它从服务器获取电子邮件并将其显示给用户。JavaMail - 如何阅读实际的邮件内容,而不是“javax.mail.internet.MimeMultipart”
我有比这更多的代码,但是这是它的主体,其打印出的消息:
// retrieve the messages from the folder in an array and print it
Message[] messages = emailFolder.getMessages();
System.out.println("messages.length---" + messages.length);
for (int i = 0, n = messages.length; i < n; i++) {
String content= messages[i].getContent().toString();
Message message = messages[i];
System.out.println("---------------------------------");
System.out.println("Email Number " + (i + 1));
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent().toString());
}
然而,当我运行该程序,我得到下面的输出:
messages.length---4
---------------------------------
Email Number 1
Subject: Access for less secure apps has been turned on
From: Google <[email protected]>
Text: [email protected]
---------------------------------
Email Number 2
Subject: Three tips to get the most out of Gmail
From: Gmail Team <[email protected]>
Text: [email protected]
---------------------------------
Email Number 3
Subject: Stay more organized with Gmail's inbox
From: Gmail Team <[email protected]>
Text: [email protected]
---------------------------------
Email Number 4
Subject: The best of Gmail, wherever you are
From: Gmail Team <[email protected]>
Text: [email protected]
Process finished with exit code 0
是否有任何方式显示实际的消息,而不是MIME multipart?例如,如果电子邮件读取“Hello World!”我希望它在相关电子邮件的“文本:”之后打印。
任何对此的帮助将不胜感激!
您真的应该了解电子邮件的构建方式。现在很少有消息会包含纯文本而没有其他东西。它通常由几个部分组成,基于MIME标准,其中每个部分可以是文本,附件,HTML等。请参阅[我的答案](http://stackoverflow.com/a/30945872/4125191)这是关于撰写消息,但会帮助你理解结构。 – RealSkeptic
[读取MIME多部分的正文部分]的可能副本(http://stackoverflow.com/questions/13474705/reading-body-part-of-a-mime-multipart) –
您可能想阅读[文档getContent方法](https://docs.oracle.com/javaee/7/api/javax/mail/Part.html#getContent--)。 – VGR