这两篇文章看看,我以前写javamail的时候也是参考这两篇的,基本上可以满足你的要求
http://softwaredev.earthweb.com/java/sdjjavase/article/0,,12395_618471,00.html
http://softwaredev.earthweb.com/java/sdjjavase/article/0,,12395_618481,00.html具体例子,不好意思啦,写的有一段时间了,也只是试试而已,现在也不知道搞哪里去了,准备过几周再写。

解决方案 »

  1.   

    好像不是哦,我记得是用javax.mail.FetchProfile 
    我找了曾经写maillist的一段代码:
    需要先打开folder,然后..
    // 获得所有新邮件的属性和标记 
    Message[] messages = folder.getMessages();  FetchProfile fp = new FetchProfile();
    fp.add(FetchProfile.Item.ENVELOPE); 
    fp.add(FetchProfile.Item.FLAGS); 
    fp.add("X-Mailer"); 
    folder.fetch(messages, fp); Message newMessage = new MimeMessage(session); //带附件的message
    newMessage.setContent((Multipart)message.getContent()); 
    我这里是把收到的信件message直接发出去了
      

  2.   

    创建一个MimeBodyPart对象并通过file读取多个文件给它,然后绑定到为MimeMessage创建的MimeMultipart实例,随后把MimeMultipart绑定给MimeMessage,随后发送出去。
    MimeMessage.setContent(MimeMultipart)
    MimeMultipart.addBodyPart(MimeBodyPart)读取message的时候要注意,我见过有朋友很随意的就把它当作带附件的信件处理。
    可以用instance of来判断一下每封信是否有附件,或者通过带附件标记来判断:
            Object content = message.getContent();
            if (content instanceof Multipart) 
    //message带附件
    else
    //message不带附件很抱歉我家里机器上没有那几个jar,所以没法具体测试一下,只能根据以前的代码和记忆这么写。