?? email_detail.jsp
字號(hào):
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*"%>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="java.net.*"%>
<%!
private String getDisplayAddress(Address a)
{
//轉(zhuǎn)換RFC822為Unicode
String pers = null;
String addr = null;
if(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null))
addr=pers+" "+"<"+((InternetAddress)a).getAddress()+">";
else
addr = a.toString();
return addr;
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>查看郵件列表</title>
</head>
<body>
<div align="center">
<h1>查看郵件內(nèi)容</h1>
<%
Session mailsession=Session.getInstance(System.getProperties(),null);
mailsession.setDebug(false);
//protocol為連接協(xié)議,IMAP或是POP
Store store=mailsession.getStore("pop3");
//pop3.sohu.com是主機(jī),gfzhao05為用戶(hù)名,123456為密碼
store.connect("pop3.sohu.com","gfzhao05","123456");
//獲得郵件服務(wù)器上INBOX文件夾中的文件信息
Folder folder = store.getFolder("INBOX");
try
{
folder.open(Folder.READ_WRITE);
}
catch (MessagingException ex)
{
folder.open(Folder.READ_ONLY);
}
//獲得收件箱中郵件信息,將它們保存到Message形式的棧中
Message message[]=folder.getMessages();
FetchProfile fp=new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.FLAGS);
fp.add("X-Mailer");
folder.fetch(message,fp);
int id=0,j=0;
//假設(shè)要閱讀第ID個(gè)郵件。
for(int i=0;i<request.getParameter("id").length();i++)
{
id=id*10+(request.getParameter("id").charAt(i)-48);
}
for(j=0;j<id;j++);
message[j].setFlag(Flags.Flag.SEEN,true);
out.println("<table width=700 border=1 cellpadding=0 cellspacing=0 align=center>");
out.println("<tr>");
out.println("<td width=100 height=25><strong>標(biāo)題:</strong></td>");
out.println("<td width=600 height=25 align=left> "+message[j].getSubject()+" </td>");
out.println("</tr>");
//獲取發(fā)信人信息
String from=new String();
Address[] fr=message[j].getFrom();
if(fr!=null)
{
for(int i=0;i<fr.length;i++)
from=from+getDisplayAddress(fr[i]);
}
out.println("<tr>");
out.println("<td height=25><strong>發(fā)信人:</strong></td>");
out.println("<td height=25 align=left> "+from+" </td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td><strong>郵件內(nèi)容:</strong></td>");
out.println("<td align=left>");
//獲取要顯示的郵件的內(nèi)容
Object o=message[j].getContent();
//若其Type為tex/tplain就可直接讀出了。
if (message[j].isMimeType("text/plain"))
{
out.println((String)o+"</td>");
}
else if(message[j].isMimeType("multipart/*"))
{
Multipart mp=(Multipart)o;
Part part=mp.getBodyPart(0);
String msg=(String)part.getContent();
StringBuffer buf=new StringBuffer(msg.length()+6);
char ch=' ';
//若遇到換行就轉(zhuǎn)為<br>
for(int i=0;i<msg.length();i++)
{
ch=msg.charAt(i);
if(ch=='\n')
{
buf.append("<br>");
}
else
{
buf.append(ch);
}
}
out.println(buf.toString());
}
else
{
out.println("暫時(shí)無(wú)法顯示:"+message[j].getContentType());
}
out.println("</tr>");
out.println("<table>");
//關(guān)閉Folder對(duì)象和Store對(duì)象
folder.close(true);
store.close();
%>
</div>
</body>
</html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -