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

📄 receivemimemail.txt

📁 javamail中的一部份 调用request.getParameter()获取主机信息
💻 TXT
字号:
package edu.hg.mail;

import java.io.File;
import java.io.FileOutputStream;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Properties;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



public class ReceiveMimeMail extends HttpServlet{
	protected void doGet(HttpServletRequest request,HttpServletResponse response)
	throws ServletException,IOException{
		doPost(request,response);
	}
	protected void doPost(HttpServletRequest request,HttpServletResponse response)
	throws ServletException,IOException{
		response.setContentType("text/html;charset=GB2312");
		PrintWriter out=response.getWriter(); 
		String szUser="teacher";
		String szPwd="123456";
		String szHost="127.0.0.1";
		String filepath="";	
		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='#fofofo'valign='top'><p align='center'><b>附件</b></p>");
			out.println("<p>"+szAttach+"</p></td>");
			out.println("</tr><table>");
			//关闭连接
			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 + -