API提供得到ID的方法是message.getMessageID(),返回string类型,
根据id得到邮件的方法是folder.getMessageByUID(long l)
奇怪的是getMessageID得到的是类似于"<[email protected]>"这样的形式的字符串,但是根据id得到邮件这个方法的参数是long型,这样根本就转换不了啊!这个是javamail的Bug?还是这个long型参数不是这个messageid?请牛人们帮帮忙!看看到底怎么个回事!
  

解决方案 »

  1.   

    应该不是BUG?自己想想啊!网上找找资料,看是否真的转不了啊!
      

  2.   

    Message 0 Message-ID: <[email protected]>这是messageID的返回结果,不能作为邮件的唯一标示。
    只有UID才是邮件的标识。
    我想folder.getMessageByUID(long l)中l是不是就是第几封邮件啊,你直接用1、2、3、4……看看
      

  3.   


    /**
     * 查询邮箱中的指定邮件
     * 
     * @param store
     *            邮箱对象
     * @param mailNum
     *            邮件编号
     * @return Message
     * @throws MessagingException
     */
    public Message getSingleMessage(Store store, Integer mailNum)
    throws MessagingException { Folder folder = store.getFolder("inbox");
    folder.open(folder.READ_ONLY);
    Message message = null;
    try { message = folder.getMessage(mailNum); } catch (ArrayIndexOutOfBoundsException ex) { message = folder.getMessage(mailNum - 1);
    }
    return message;
    }Integer mailNum = message.getMessageNumber();
      

  4.   

    messageNumber是可变的! 用这个属性去得到邮件很方便 !也就是说当邮件删除后了,后面的邮件编号会自动补上!
    如: 
     Message 1  , 2 , 3 
    当 删除   2后 就成了
     Message 1,2    原来 的3变成了2