日期:2014-05-17  浏览次数:20798 次

预览文章: javamail单独运行main()无异常,加入web程序中调用异常
自己写了javamail的收邮件程序,且通过收邮件类的main方法测试成功,能收到所有邮件,但是将此类加入到web应用中后,部署到tomcat,然后通过页面请求后,也能获得message的条数,但是在转化成Part后,就java.lang.NullPointerException,异常了。 
Properties props = System.getProperties();  
  props.put("mail.store.protocol","imap"); 
props.put("mail.imap.host","imap.163.com"); 
    props.put("mail.imap.auth.plain.disable","true"); 
    try { 
      Session mailsession=Session.getInstance(props,null); 
          mailsession.setDebug(false); //是否启用debug模式 
          IMAPFolder folder= null; 
          IMAPStore store=null; 
          store=(IMAPStore)mailsession.getStore("imap");  // 使用imap会话机制,连接服务器 
          store.connect("mail.163.com","azc118116@163.com","azc1181161"); 
          folder=(IMAPFolder)store.getFolder("INBOX"); //收件箱 
        
folder.open(Folder.READ_WRITE);  
Message message[] = folder.getMessages(); 
int unreadcount=folder.getUnreadMessageCount(); 
int newmailcount=folder.getNewMessageCount(); 
int total=folder.getMessageCount(); 
int p=0; 
MailRecive pmm = null;  
for(int i=0;i<total;i++) 

pmm = new MailRecive((MimeMessage) message[i]);  
   // 获得邮件内容===============  
   pmm.getMailContent((Part) message[i]);  
   pmm.setAttachPath("d:/bossinmail");   
   pmm.saveAttachMent((Part) message[i]);   

以上代码在类的main函数中独立运行无问题,但是部署到tomcat后,就在 pmm.getMailContent((Part) message[i]);  这句话报空指针异常了。请各位大侠帮忙解决!~谢谢 
详细代码请参考 
https://code.csdn.net/snippets/221501 
https://code.csdn.net/snippets/221516 
备注:web框架使用的是struts2 
------解决方案--------------------
引用:
Quote: 引用:

貌似当初我也遇到这个问题了。后来自己重新写的javamail~

给个建议或者修改意见呗,高手~~谢谢啊。到底怎么解决呢?

你留个邮箱,我发给你一份jar包吧~具体的我也忘记怎么修改了。
------解决方案--------------------
看下不是  message[i] 都有数据呢?   pmm.getMailContent((Part) message[i]);