📄 receivemimemail.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'>日 期 :</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();
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 + -