return "fail111";在这句前加上
System.out.println(e.toString());
看截获的是什么异常。
你的原因很简单
因为msgs[i]这里的i是比较的变化的,当你有5封信时,假如i是第5封,但是当你删除了一封时,第5封就变成了第四封,而你要用msgs[4]取得。

解决方案 »

  1.   

    还是用pop3获得邮件序号后再用pop3去接收吧
      

  2.   

    不明白你为什么要先用imap读出那个序号再用pop3接受邮件
    实际上除了放在INBOX里面的邮件以外,pop3是不可能接收到
    其他目录之下的邮件的所以你要么直接用imap接收邮件,要么不要理会那个目录
      

  3.   

    我不理其他目录,就是inbox的目录,不知怎么搞得,我的程序只能用pop3的方式才能取得邮件里的附件,imap 的方式就出错