这两篇文章看看,我以前写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具体例子,不好意思啦,写的有一段时间了,也只是试试而已,现在也不知道搞哪里去了,准备过几周再写。
http://softwaredev.earthweb.com/java/sdjjavase/article/0,,12395_618471,00.html
http://softwaredev.earthweb.com/java/sdjjavase/article/0,,12395_618481,00.html具体例子,不好意思啦,写的有一段时间了,也只是试试而已,现在也不知道搞哪里去了,准备过几周再写。
我找了曾经写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直接发出去了
MimeMessage.setContent(MimeMultipart)
MimeMultipart.addBodyPart(MimeBodyPart)读取message的时候要注意,我见过有朋友很随意的就把它当作带附件的信件处理。
可以用instance of来判断一下每封信是否有附件,或者通过带附件标记来判断:
Object content = message.getContent();
if (content instanceof Multipart)
//message带附件
else
//message不带附件很抱歉我家里机器上没有那几个jar,所以没法具体测试一下,只能根据以前的代码和记忆这么写。