快速业务通道

用Javamail写的邮件接收程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

用Javamail写的邮件接收程序

时间:2010-03-20

前段时间一直忙于学校里面的事情,没有时间静下心来写接收邮件的程序,现在学校里的事情终于忙完了,可以静下心里做自己喜欢做的事情了,这种感觉真的很好!

对我自己而言,刚开始在用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{

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号