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

📄 receivemimemail.java

📁 J2EE 技术 源码 书籍源代码(j2ee编程技术)
💻 JAVA
字号:
/*
 * Created on 2004-6-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
package com.mail;

import java.io.File;
import java.io.FileOutputStream;

import java.io.*;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.text.SimpleDateFormat;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

/**
 * @author haoyulong
 *
 * To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
public class ReceiveMimeMail extends HttpServlet {
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		//TODO Method stub generated by Lomboz
		doPost(request,response);
	}
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		//TODO Method stub generated by Lomboz
		response.setContentType("text/html;charset=GB2312");
		PrintWriter out = response.getWriter();
		String szUser="teacher";
		String szPwd="654321";
		String szHost="127.0.0.1";
        String filepath="c:\\";

		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);
		    Message message[] = folder.getMessages();  //获取信件
		    
		    if(message.length==0){
		    //没有邮件
		    }
		   int nid=0;
		  
		    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="";   
            
		    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'>日&nbsp;&nbsp;&nbsp; 期 :</td>");
		    out.println("<td><font face='Fixedsys'>" + szDate +"</font></td></tr>");
		    out.println("<tr><td align='center'>主&nbsp;&nbsp;&nbsp; 题 :</td>");
		    out.println("<td>"+ szSubject +"</td></tr></table>");
		    out.println("</td></tr>");  
		    //提取邮件正文內容   
		    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="";
		        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))))){
		                //创建文件,并从输入流中读取信息,存入到文件中    
		                szFile=MimeUtility.decodeText(part.getFileName());
		                    
		                String fullpath=filepath +  szFile;
		                ffile = new File(fullpath);     

		                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>" +fullpath ;
		            }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(0).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);  
		    store.close();
		}
		catch(javax.mail.MessagingException  e){
		    System.out.println(e.getMessage());
		    return ;
		}
	}
}

⌨️ 快捷键说明

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