我自己写了一些代码,能正确收到 主题,发送人,发送日期,邮件大小,等等.
但是无法获取邮件正文,请大侠们帮帮忙...多谢多谢!
下面试我的代码:
msgNO 表示获取第几封邮件.     
       public static String receiveMailContent(int msgNo) throws Exception{
                Properties props = new Properties();
props.setProperty("mail.store.protocol", protocol);
props.setProperty("mail.pop3.host", pop3Server);
Session session = Session.getDefaultInstance(props);
// session.setDebug(true);
Store store = session.getStore();
store.connect(pop3Server, username, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message msg = folder.getMessage(msgNo);
if(msgNo == msg.getMessageNumber()){
String subject = msg.getSubject();
String from = msg.getFrom()[0].toString();
Date date = msg.getSentDate();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String sentDate = format.format(date);
int mailSize = msg.getSize(); 
System.out.println("第" + msgNo +"封邮件");
System.out.println("发件人:" + MimeUtility.decodeText(from));
System.out.println("主题:" + subject);
System.out.println("发送日期:" + sentDate);
System.out.println("大小:" + size); getMailContent((Part)msg); return null;
} folder.close(false);
store.close();
return null;
} public static void getMailContent(Part msgs)throws Exception{
StringBuffer content = null;
if(msgs.isMimeType("text/plain")){
content.append((String)msgs.getContent());
System.out.println("内容:" + content);
}if(msgs.isMimeType("text/html")){
content.append(msgs.getContent());
System.out.println("内容:" + content);
}if(msgs.isMimeType("multipart/*")){
Multipart mp = (Multipart) msgs.getContent();
int bodynum = mp.getCount();
for(int i=0;i<bodynum;i++){
getMailContent(mp.getBodyPart(i));
}
}
}
调用这个方法后控制台输出:
第2封邮件
发件人:Gmail 小组敬上 <[email protected]>
主题:您已创建 Gmail 地址 [email protected]
发送日期:2009-04-15 09:22:28
大小:0KB
Exception in thread "main" java.lang.NullPointerException
at org.mymail.util.MailReceiver.getMailContent(MailReceiver.java:123)
at org.mymail.util.MailReceiver.receiveMailContent(MailReceiver.java:109)
at org.mymail.action.ListTest.main(ListTest.java:40)总是getMailContent(Part msgs)方法中的这句出错出错:
content.append((String)msgs.getContent());还请大侠指点迷津,小弟在这里有礼了!
3Q3Q!