⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 email_detail.jsp

📁 jsp动态网站开发技术与实践 电子工业出版社 随书附赠源代码
💻 JSP
字号:
<%@ 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) 
{ 
	//转换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>查看邮件内容</h1>	
	<%
		Session mailsession=Session.getInstance(System.getProperties(),null);
		mailsession.setDebug(false);
		//protocol为连接协议,IMAP或是POP
		Store store=mailsession.getStore("pop3");
		//pop3.sohu.com是主机,gfzhao05为用户名,123456为密码
		store.connect("pop3.sohu.com","gfzhao05","123456");
		//获得邮件服务器上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;
		//假设要阅读第ID个邮件。
		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>标题:</strong></td>");
		out.println("<td width=600 height=25 align=left> &nbsp;"+message[j].getSubject()+" </td>");
		out.println("</tr>");
		
		//获取发信人信息
		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>发信人:</strong></td>");
		out.println("<td height=25 align=left>&nbsp; "+from+" </td>");
		out.println("</tr>");	
		out.println("<tr>");
		out.println("<td><strong>邮件内容:</strong></td>");	
		out.println("<td align=left>");	
		
		//获取要显示的邮件的内容
		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=' ';
			//若遇到换行就转为<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("暂时无法显示:"+message[j].getContentType());
		}
		out.println("</tr>");
		out.println("<table>");
		//关闭Folder对象和Store对象
		folder.close(true);
		store.close();
	%>
	</div>
	</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -