我正在使用javax.mail开发客户端邮件来读取邮箱内的邮件:
Properties properties = System.getProperties();
properties.setProperty("mail.store.protocol", "imap");
try {
Session session = Session.getDefaultInstance(properties, null);
Store store = session.getStore("pop3");//create store instance
store.connect("pop3.domain.it", "mail.it", "*****");
Folder inbox = store.getFolder("inbox");
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
inbox.open(Folder.READ_ONLY);//set access type of Inbox
Message messages[] = inbox.search(ft);
String mail,sub,bodyText="";
Object body;
for(Message message:messages) {
mail = message.getFrom()[0].toString();
sub = message.getSubject();
body = message.getContent();
//bodyText = body.....
}
} catch (Exception e) {
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)
我知道该方法getContent()返回一个对象,因为内容可能是a String,a MimeMultiPart,a SharedByteArrayInputstream和其他(我认为)......有没有办法在消息正文中获取文本?谢谢!!
几个星期以来,我一直在为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;
} …Run Code Online (Sandbox Code Playgroud)