javamail 收邮件时候内容重复 怎么过滤重复内容.... 100分给了.
一些邮件发送出来时,既有plain又有html,为了防止一些无法解析html的地方也能收到邮件内容,才重复的发2段同样的内容,但是我在解析时候,使用javamail的MimeMessage解析,网上的例子也不少,但是这样解析出来的content就包含的重复的部分,怎样去除掉plain部分的呢?
同时要考虑到有的邮件只有plain部分,这时候肯定是不能去除的。应该怎么做呢? 100分给了。。
代码:
public void getMailContent(Part part) throws Exception {
String contentType=part.getContentType();
int nameindex = contentType.indexOf("name");
boolean conname = false;
if (nameindex != -1)
conname = true;
System.out.println("CONTENTTYPE: " + contentType);
if (part.isMimeType("text/plain") && !conname) {
bodytext.append((String) part.getContent());
} else if (part.isMimeType("text/html") && !conname) {
bodytext.append((String) part.getContent());
}
else if (part.isMimeType("multipart/*")) {
Multipart multipart = (Multipart) part.getContent();
int counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
}
else if (part.isMimeType("message/rfc822")) {
getMailContent((Part) part.getContent());
}
else {
}
}
[解决办法]
public void getMailContent(Part part, boolean flag) throws Exception {
String contentType=part.getContentType();
int nameindex = contentType.indexOf("name");
boolean conname = false;
if (nameindex != -1)
conname = true;
System.out.println("CONTENTTYPE: " + contentType);
if (part.isMimeType("text/plain") && !conname && flag) {
bodytext.append((String) part.getContent());
flag= false;
} else if (part.isMimeType("text/html") && !conname && flag) {
bodytext.append((String) part.getContent());
} else if (part.isMimeType("multipart/*")) {
Multipart multipart = (Multipart) part.getContent();
int counts = multipart.getCount();
for (int i = 0; i < counts; i++) {
getMailContent(multipart.getBodyPart(i));
}
}
}
你从外面传一个变量进来,判断一下,如果取了"text/plain"就不再取"text/html"不可以吗?
[解决办法]