这个方法返回的是邮件内容的Content-Type中的信息。比如:Content-Type: text/html;charset="GB2312"/**
* 得到消息中的内容信息
* @param path 附件保存的路径
* @param path2 当前URL
* @param eventtype 如果eventtype=1,不显示附件
* @return 返回内容信息
*/
//调用此方法前,要调用MailAccept.getMessageArray()方法得到message
public String getMailContent(String path,String path2,int eventtype) {
String s = "";
String sct = "";
this.path = path; //得到附件保存的路径
this.path2 = strdata.indexStr(path2,"/",8); //得到当前URL
this.eventtype = eventtype;
try {
Object o = message.getContent(); //返回所有消息内容
sct = message.getContentType(); //返回ContentType信息
if (message.isMimeType("text/plain")||message.isMimeType("text/html")||sct==null) {
//判断ContentType中是否为GB2312或GBK编码
if (strdata.regionStr(sct,"GB2312")||strdata.regionStr(sct,"gb2312")||strdata.regionStr(sct,"GBK")||strdata.regionStr(sct,"GB2312_CHARSET")) {
s = "<pre>"+(String)o+"</pre>";
coding = "GB2312";
}
//判断ContentType中是否为big5编码
else if (strdata.regionStr(sct,"big5")||strdata.regionStr(sct,"Big5")) {
s = "<pre>"+strdata.getstrTobig((String)o)+"</pre>";
coding = "Big5";
}
//如果没有就调用str类中的getstr进行编码转换
else
s = "<pre>"+strdata.getstr((String)o)+"</pre>";
return s;
}
//判断消息中是否有multipart/*头,如果有就进入Multipart处理
if (message.isMimeType("multipart/*")) {
Multipart mp = (Multipart)o;
int cnt = mp.getCount();
for (int j = 0; j < cnt; j++) {
s="<br>"+getPart(mp.getBodyPart(j),j,2,eventtype);
}
}
}
catch(MessagingException e ) {
System.err.println("MailContent.getMailContent(): " + e.toString());
}
catch(Exception e) {
System.err.println("MailContent.getMailContent(): " + e.toString());
}
return s;
}
* 得到消息中的内容信息
* @param path 附件保存的路径
* @param path2 当前URL
* @param eventtype 如果eventtype=1,不显示附件
* @return 返回内容信息
*/
//调用此方法前,要调用MailAccept.getMessageArray()方法得到message
public String getMailContent(String path,String path2,int eventtype) {
String s = "";
String sct = "";
this.path = path; //得到附件保存的路径
this.path2 = strdata.indexStr(path2,"/",8); //得到当前URL
this.eventtype = eventtype;
try {
Object o = message.getContent(); //返回所有消息内容
sct = message.getContentType(); //返回ContentType信息
if (message.isMimeType("text/plain")||message.isMimeType("text/html")||sct==null) {
//判断ContentType中是否为GB2312或GBK编码
if (strdata.regionStr(sct,"GB2312")||strdata.regionStr(sct,"gb2312")||strdata.regionStr(sct,"GBK")||strdata.regionStr(sct,"GB2312_CHARSET")) {
s = "<pre>"+(String)o+"</pre>";
coding = "GB2312";
}
//判断ContentType中是否为big5编码
else if (strdata.regionStr(sct,"big5")||strdata.regionStr(sct,"Big5")) {
s = "<pre>"+strdata.getstrTobig((String)o)+"</pre>";
coding = "Big5";
}
//如果没有就调用str类中的getstr进行编码转换
else
s = "<pre>"+strdata.getstr((String)o)+"</pre>";
return s;
}
//判断消息中是否有multipart/*头,如果有就进入Multipart处理
if (message.isMimeType("multipart/*")) {
Multipart mp = (Multipart)o;
int cnt = mp.getCount();
for (int j = 0; j < cnt; j++) {
s="<br>"+getPart(mp.getBodyPart(j),j,2,eventtype);
}
}
}
catch(MessagingException e ) {
System.err.println("MailContent.getMailContent(): " + e.toString());
}
catch(Exception e) {
System.err.println("MailContent.getMailContent(): " + e.toString());
}
return s;
}
private String getPart(Part part, int partNum,int msgNum,int eventtype) throws MessagingException,IOException {
String s="";
String s2="";
String s5="";
String sct = part.getContentType();//返回multipart/*头下的所有内容
boolean blnnum = true;
if (sct == null) {
s="无效";
return s;
}
ContentType ct = new ContentType(sct); //进行头处理
if (ct.match("text/plain") || ct.match("text/html")) {
//判断ContentType中是否为GB2312或GBK编码
if (strdata.regionStr(sct,"GB2312")||strdata.regionStr(sct,"gb2312")||strdata.regionStr(sct,"GBK")||strdata.regionStr(sct,"iso-gb2312")) {
s1 = "<pre>"+(String)part.getContent()+"</pre>";
coding = "GB2312";
}
//判断ContentType中是否为big5编码
else if (strdata.regionStr(sct,"big5")||strdata.regionStr(sct,"Big5")) {
s1 = "<pre>"+strdata.getstrTobig((String)part.getContent())+"</pre>";
coding = "Big5";
}
//如果没有就调用str类中的getstr进行编码转换
else s1 = "<pre>"+strdata.getstr((String)part.getContent())+"</pre>";
}
//如果multipart/*头中还有multipart/alternative头就进行处理
if(part.isMimeType("multipart/*")) {
String s6="";
Multipart mp = (Multipart)part.getContent();
int count = mp.getCount();
for (int i = 0; i < count; i++) {
if(mp.getBodyPart(i).isMimeType("text/plain") || mp.getBodyPart(i).isMimeType("text/html")||mp.getBodyPart(i).isMimeType("multipart/*"))
s5=getPart(mp.getBodyPart(i),i,3,eventtype);
}
return s5;
}
//对附件进行处理
if (blnAttachment(part)) {
if (eventtype==1) return s1; //不显示附件
s3 = "附件:" + getMailAttachment(part) + "<br>" + s3; //得到附件名和下载链接
}
s = s1+s3;
return s;
}
如果是iso8859-1哪?我需要尽量多的可能性,谢谢!
编码类型一定会写在ContentType里面是吗?
http://www.china-pub.com/computers/eMook/emooknew/RFC/rfc.asp
strdata.regionStr(sct,"gb2312")
那里来的,