javamail如何通过cid下载图片到本地
1、这个cid跟这封邮件的内嵌资源一一对应,这个cid主要用来替换你下载到本地的资源文件比如gif表情,然后将src中的路径换成本地路径才能正常显示

2、这个没有附件容易理解,其实可以这样理解,他也是附件,就是你要先下载到本地

3、替换完之后才能正常的展示到用户面前,多了个下载的过程,而附件可以直接展示,点击某个附件再调用下载的过程.

4、解析cid并存储到本地数据库
解析宙排相信大家都会,邮件解析也就递归进行吧,获取part中的content-id就行,注意content-id的大小写,代码如下

5、获取cid方法
[java] view plain copy
public static String getCid(Part p) throws MessagingException {
String content, cid;
String[] headers = p.getHeader("Content-Id");
if (headers != && headers.length > 0) {
content = headers[0];
} else {
return ;
}
if (content.startsWith("<") && content.endsWith(">")) {
睡孝 cid = "cid:" + content.substring(1, content.length() - 1);
} else {
cid = "cid:" + content;
}
return cid; 沫欠陵
}

6、看下log输出,因为我用FoxMail发送的表情测试的,可以看到cid后面有foxmail的标识,可能是cid的生成规则吧
