龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

用Javamail写的邮件接收程序

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
前段时间一直忙于学校里面的事情,没有时间静下心来写接收邮件的程序,现在学校里的事情终于忙完了,可以静下心里做自己喜欢做的事情了,这种感觉真的很好! 对我自己而言,刚
前段时间一直忙于学校里面的事情,没有时间静下心来写接收邮件的程序,现在学校里的事情终于忙完了,可以静下心里做自己喜欢做的事情了,这种感觉真的很好!
  对我自己而言,刚开始在用JavaMail来编写收邮件的程序时最重要和最难的要数解析附件和邮件正文的部分,因为Mime类型实在是太多了!下面的这段代码是我自己学习JavaMail的一段体会,供大家来参考(请高手指教,有什么更好的办法,请回复此文章),具体代码如下:

package coffeecatwebmail;

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

public class PraseMimeMessage{
 private MimeMessage mimeMessage = null;
 private String saveAttachPath = "";    //附件下载后的存放目录
 private StringBuffer bodytext = new StringBuffer();
 //存放邮件内容的StringBuffer对象
 private String dateformat = "yy-MM-dd HH:mm";  //默认的日前显示格式
  
/**
 * 构造函数,初始化一个MimeMessage对象
 */
 public PraseMimeMessage(){}
 public PraseMimeMessage(MimeMessage mimeMessage){
  this.mimeMessage = mimeMessage;
  System.out.println("create a PraseMimeMessage object........");
 }

 public void setMimeMessage(MimeMessage mimeMessage){
  this.mimeMessage = mimeMessage;
 }
  
/**
 * 获得发件人的地址和姓名
 */
 public String getFrom()throws Exception{
  InternetAddress address[] = (InternetAddress[])mimeMessage.getFrom();
  String from = address[0].getAddress();
  if(from == null) from="";
   String personal = address[0].getPersonal();
   if(personal == null) personal="";
  String fromaddr = personal+"<"+from+">";
  return fromaddr;
 }
/**
 * 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同
 * "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址
 */

 public String getMailAddress(String type)throws Exception{
  String mailaddr = "";
  String addtype = type.toUpperCase();
  InternetAddress []address = null;
  if(addtype.equals("TO")  addtype.equals("CC") addtype.equals("BCC")){
   if(addtype.equals("TO")){
  address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.TO);
   }else if(addtype.equals("CC")){
  address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.CC);
   }else{
  address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.BCC);
   }
   if(address != null){
  for(int i=0;i<address.length;i++){
   String email=address[i].getAddress();
   if(email==null) email="";
   else{
  email=MimeUtility.decodeText(email);
   }
   String personal=address[i].getPersonal();
  if(personal==null) personal="";
  else{
   personal=MimeUtility.decodeText(personal);
  }
  String compositeto=personal+"<"+email+">";
  mailaddr+=","+compositeto;
   }
   mailaddr=mailaddr.substring(1);
  }
   }else{
   throw new Exception("Error emailaddr type!
  
精彩图集

赞助商链接