📄 browsemail.jsp
字号:
<%@ page contentType="text/html;charset=gb2312"%><%@ page language="java" import="java.util.*"%><%@ page import="javax.mail.*"%><%@ page import="javax.mail.internet.*"%><%@ page import="java.io.*"%><%@ page import="java.text.SimpleDateFormat"%><%String szUser="teacher";String szPwd="654321";String szHost="127.0.0.1";SimpleDateFormat smpDateFormat;smpDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm");try{ Properties props = new Properties(); Session mailsession = Session.getDefaultInstance(props, null);//获取会话对象 Store store = mailsession.getStore("pop3"); //获取邮箱 store.connect(szHost,szUser,szPwd); Folder folder = store.getFolder("INBOX"); //获取收件箱 folder.open(Folder.READ_ONLY); //folder.open(Folder.READ_WRITE); //讀寫方式,可以刪除郵件 Message message[] = folder.getMessages(); //获取信件 if(message.length==0){ //没有邮件 } int nid=0; message[nid].setFlag(Flags.Flag.SEEN,true); String szFrom=((InternetAddress)message[nid].getFrom()[0]).getAddress(); //取得真實的發件人地址 String szSubject=MimeUtility.decodeText(message[nid].getSubject()); String szDate=smpDateFormat.format(message[nid].getSentDate()); String szBody=""; String szAttach=""; //Address addrFrom[]=message[nid].getFrom(); //for (k=0;k<addrFrom.length;k++) szFrom=szFrom+ addrFrom[k].toString(); out.println("<table border='0' width='100%' cellpadding='2'><tr>"); out.println("<td width='100%' colspan='2' bgcolor='#F0F0F0'>"); out.println("<table border='0' width='100%' cellpadding='2'><tr>"); out.println("<td width='15%' align='center'>发件人 :</td>"); out.println("<td width='85%'><font face='Fixedsys'>" + szFrom +"</font></td></tr>"); out.println("<tr><td align='center'>日 期 :</td>"); out.println("<td><font face='Fixedsys'>" + szDate +"</font></td></tr>"); out.println("<tr><td align='center'>主 题 :</td>"); out.println("<td>"+ szSubject +"</td></tr></table>"); out.println("</td></tr>"); //提取郵件正文內容 //String szType=message[nid].getContentType(); //提取郵件中的附件 String szType=message[nid].getContentType(); System.out.println("正文********" + szType); Object out_content = message[nid].getContent(); if(!(out_content instanceof Multipart)) //無附件 { szBody=message[nid].getContent().toString(); }else{ //有附件 Multipart mp = (Multipart)message[nid].getContent(); String szFile=""; File ffile; String szpath=application.getRealPath("/")+szUser; ffile = new File(szpath); if(!ffile.exists()) ffile.mkdir(); szpath=szpath+ "//tmp"; out.println("szpath: " + szpath ); String szTmp=""; ffile = new File(szpath); if(!ffile.exists()) ffile.mkdir(); for (int i=0,n=mp.getCount(); i<n; i++) { Part part = mp.getBodyPart(i); String szMbp=part.getContentType(); System.out.println("IDX:" + i+ " :類型" + szMbp); String disposition = part.getDisposition(); if((disposition != null) && ((disposition.equals(Part.ATTACHMENT)||(disposition.equals(Part.INLINE))))){ //創建一個文件,並從輸入流中流讀取字節,存入到文件中 //MimeUtility.decodeText() //System.out.println(MimeUtility.decodeText(part.getFileName())); //out.println("附件: " + MimeUtility.decodeText(part.getFileName()) + " 附件大小" + part.getSize()); szFile=MimeUtility.decodeText(part.getFileName()); szTmp=szFile; out.println("FILE: " + szpath + "/" + szFile); ffile = new File(szpath + "/" + szFile); //for (k=0; ffile.exists(); k++){ // szTmp=k+szFile; // System.out.println("FILE: " + szpath + "/" + k+ szFile ); // ffile = new File(szpath + "/" + k + szFile); //} //System.out.println("文件名:"+ szFile); FileOutputStream outfile = new FileOutputStream(ffile); BufferedInputStream br = new BufferedInputStream(part.getInputStream()); BufferedOutputStream bw = new BufferedOutputStream(outfile); int b; while ((b = br.read()) != -1) bw.write(b); bw.flush(); szAttach=szAttach+"<br><a href='../webmail/" + szUser +"/tmp/"+ szTmp + "'>" + szTmp + "</a>"; }else if(disposition==null){ MimeBodyPart mbp = (MimeBodyPart)part; if (mbp.isMimeType("text/plain")||mbp.isMimeType("text/html")){ //普通正文 szBody=mbp.getContent().toString(); szBody=szBody.replaceAll("\r\n","<br>"); }else if(mbp.isMimeType("multipart/alternative")) { //HTML正文 szBody=((Multipart)part.getContent()).getBodyPart(1).getContent().toString(); } } } } System.out.println("內容:" + szBody); out.println("<tr><td width='75%' height='215' valign='top'>" + szBody +"</td>"); out.println("<td width='25%' bgcolor='#F0F0F0' valign='top'><p align='center'><b>附件</b></p>"); out.println("<p>"+ szAttach +"</p></td>"); out.println("</tr><table>"); //Close connection folder.close(false); //folder.close(true); //如果要刪除有DELETE標記的郵件,需設置true store.close();}catch(javax.mail.MessagingException e){ System.out.println(e.getMessage()); return ;}%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -