发件人
--------------------------------------
=?gb2312?B?1tC52LTl1NrP3w==?= 
=?gb2312?B?MzE1z/u30bXn19PNtsvfzfg=?=
主题
--------------------------------------
ZOL - ???jingtian1001:?????????! 
315?????????????? 这两个全部都是乱码...
后台代码: public List<com.gmtoa.struts.mail.vo.ReceiveEmailForm> showEmail(String host, String username,
String password, String flag) {
List<com.gmtoa.struts.mail.vo.ReceiveEmailForm> list = new ArrayList<com.gmtoa.struts.mail.vo.ReceiveEmailForm>(); try {
Store store = connectStore(host, username, password);// 建立与邮件接收服务器的连接
POP3Folder folder = (POP3Folder) store.getFolder("inbox"); folder.open(Folder.READ_WRITE); //打开邮件夹 FetchProfile profile = new FetchProfile(); Message[] message = null;
String str_messageId = queryIsRead(username); // 已经阅读的邮件ID组成的字符串 if (!"".equals(str_messageId)) {
String[] isRead = str_messageId.split(",");
if ("0".equals(flag)) { // 未读邮件
// 生成搜索条件
NotTerm[] arrIsRead = new NotTerm[isRead.length];
for (int i = 0; i < isRead.length; i++) {
arrIsRead[i] =new NotTerm(new MessageIDTerm(isRead[i]));
}
SearchTerm st = new AndTerm(arrIsRead);
message = folder.search(st);
folder.fetch(message, profile); } else { // 已读邮件
// 生成搜索条件
MessageIDTerm[] arrIsRead = new MessageIDTerm[isRead.length];
for (int i = 0; i < isRead.length; i++) {
arrIsRead[i] = new MessageIDTerm(isRead[i]);
}
SearchTerm st = new OrTerm(arrIsRead);
message = folder.search(st);
folder.fetch(message, profile);
}
} else {
if ("0".equals(flag)) { // 未读邮件
message = folder.getMessages(); // 获取全部邮件
folder.fetch(message, profile);
}
}
String mail_content = "";
String mail_attach = "";
Message messageI = null;
/******************************循环读取邮件信息******************************/
if(message!=null){
for (int i = message.length - 1; i >= 0; i--) {
MimeMessage m = (MimeMessage) message[i];
com.gmtoa.struts.mail.vo.ReceiveEmailForm f = new com.gmtoa.struts.mail.vo.ReceiveEmailForm();
messageI = message[i];
f.setMessageId(m.getMessageID()); // 邮件ID
f.setAddresser(messageI.getFrom()[0].toString()); // 发件人
/*************获取邮件主题**********************************************/
MimeMessage part=(MimeMessage) message[i];
String head=part.getHeader("SUBJECT")[0]; //获取邮件的头
if(head.toLowerCase().startsWith("=?GB")){ //获取GBK或GB2312编码的邮件主题
f.setTitle(messageI.getSubject());
}else{
f.setTitle(new String(messageI.getSubject().getBytes("ISO-8859-1"),"GBK")); // 邮件主题
}
/********************************************************************/
f.setSendTime(messageI.getSentDate().toLocaleString()); // 发送时间
String[] obj = getMailAttach(part, i); //调用获取邮件附件的方法
message[i].getFlags().getSystemFlags().toString();
mail_content = obj[0]; //邮件内容
mail_attach = obj[1]; //邮件附件
if (mail_attach == null || mail_attach.equals("")) {
mail_attach = "0";
} else {
mail_attach = "1";
}
f.setAdjunct(mail_attach); // 附件
list.add(f); // 将邮件信息保存到List集合中
}
}
/***********************************************************************/
folder.close(false); //关闭邮件夹
store.close(); //关闭与邮件服务器的连接
} catch (Exception e) {
e.printStackTrace();
}
return list;
}