几个星期以来,我一直在为 android 开发一个电子邮件客户端,我有一段时间忽略了解析电子邮件内容,因为我从来没有能够让它工作。因此,是时候寻求帮助了!
我一直在四处寻找,发现了一些我尝试过但从未成功过的方法!目前我最接近的尝试必须是:
private String parseContent(Message m) throws Exception
{
//Multipart mp = (Multipart)c;
//int j = mp.getCount();
/*for (int i = 0; i < mp.getCount(); i++)
{
Part part = mp.getBodyPart(i);
System.out.println(((MimeMessage)m).getContent());
content = content + part.toString();
//System.out.println((String)part.getContent());
}*/
Object content = m.getContent();
String contentReturn = null;
if (content instanceof String)
{
contentReturn = (String) content;
}
else if (content instanceof Multipart)
{
Multipart multipart = (Multipart) content;
BodyPart part = multipart.getBodyPart(0);
part.toString();
contentReturn = part.getContent().toString();
}
return contentReturn;
}
但它不起作用,我收到诸如“javax.mail.internet.MimeMultipart@44f12450”之类的乱码。
谁能看出我哪里出错了?
谢谢, 里斯
最佳答案
以上建议均无效。你不需要在这里做任何复杂的事情。 Mimemessage 有 message.writeTo(outputStream);
打印消息所需要做的就是:
message.writeTo(System.out);
以上代码会将实际的 MIME 消息打印到控制台(或者您可以使用任何记录器)。
将内容保存到.eml,即可在outlook中打开。就这么简单!
关于JavaMail - 解析电子邮件内容,似乎无法正常工作! (消息.getContent()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628395/