`
ShellyLi
  • 浏览: 114205 次
  • 性别: Icon_minigender_2
  • 来自: 山东
社区版块
存档分类
最新评论

javamail接收邮件的bean,可以正确的解析中文(转)(一)

阅读更多
这几天写的javamail项目中接收邮件和解析邮件的类,参考了很多代码,但是好像没有比较完整的对中文支持还有邮件解析的整合,所以自己写了一个。

Pop3Bean.java是主要的代码

FileProperties.java读取配置文件的类

MailConstants.java指向配置文件的接口,可以不用

Pop3BeanTest.java测试程序

ReadEml.java读取eml文件的bean



接收邮件类

//:Pop3Bean.java
/*
* Created on 2004-12-22
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.jteam.jmail.pop3bean;

import java.io.*;
import java.text.*;
import java.util.*;
import org.jteam.jmail.util.*;
import javax.mail.*;
import javax.mail.internet.*;

/**
* @author David
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class Pop3Bean {

     private int mailCounter; //邮件计数

     private int mailIndex; //邮件编号,即邮件在messages数组中的位置

     private int mailDownErrorCounter; //正在下载邮件时,出错的计数器

     private boolean[] recordFailure; //记录下载出错的邮件的序号

     private int totalRetryTimes; //总共重试次数

     private int retryTimeCounter; //记下重试的次数

     private boolean otherError; //若是在邮件正式下载之前出错,则置该值为true

     private String extension; //文件扩展名

     private Store store;

     private Folder folder;

     private Message[] messages;

     private Message message;

     private Part part;

     private String emlName;

     private String attachName;

     private int allMessageCount;

     private int messageCount;

     private String dateformat; //默认的日前显示格式

     private String propFile = MailConstants.PROPS_FILE_NAME;//用这个接口类的好处是更改配置文件路径的时候不需要更改每个类

     private String protocol; //服务协议

     private String mailHost; //服务器地址

     private String userName; //用户名

     private String password; //密码

     private String saveAttachPath; //附件下载后的存放目录

     private String saveEmlPath;//保存eml文件的路径

     public Pop3Bean() throws IOException {
         FileProperties fp = new FileProperties(propFile);
         fp.load();
         protocol = fp.getProperty(MailConstants.RECV_PROTO);
         mailHost = fp.getProperty(MailConstants.RECV_HOST);
         userName = fp.getProperty(MailConstants.RECV_USER);
         password = fp.getProperty(MailConstants.RECV_PASS);
         saveAttachPath = fp.getProperty(MailConstants.RECV_ATTACH);
         saveEmlPath = fp.getProperty(MailConstants.RECV_ROOT);
         dateformat = fp.getProperty("mail.receive.dtfmat");
         extension = fp.getProperty("mail.receive.extension");
         totalRetryTimes = Integer
                 .parseInt(fp.getProperty("mail.receive.retry"));
     }

     /**
      * 设置邮件主机
      */
     public void setMailHost(String mailHost) {
         this.mailHost = mailHost;
     }

     /**
      * 获取邮件主机
      */
     public String getMailHost() {
         return this.mailHost;
     }

     /**
      * 设置邮件帐号
      */
     public void setUserName(String userName) {
         this.userName = userName;
     }

     /**
      * 获取邮件帐号
      */
     public String getUserName() {
         return this.userName;
     }

     /**
      * 设置邮件密码
      */
     public void setPassword(String password) {
         this.password = password;
     }

     /**
      * 设置Store
      */
     public void setStore(Store store) {
         this.store = store;
     }

     /**
      * 设置邮箱文件夹
      */
     public void setFolder(Folder folder) {
         this.folder = folder;
     }

     /**
      * 设置messages数组
      */
     public void setMessages(Message[] messages) {
         this.messages = messages;
     }

     /**
      * 设置message
      */
     public void setMessage(Message message) {
         this.message = message;
     }

     /**
      * 获取message
      */
     public Message getMessage() {
         return this.message;
     }

     /**
      * 获取folder中的message数量
      *
      * @throws MessagingException
      */
     public int getAllMessageCount() throws MessagingException {
         this.allMessageCount = folder.getMessageCount();
         return allMessageCount;
     }

     /**
      * 设置allMessageCount
      *
      * @throws MessagingException
      */
     private void setAllMessageCount() throws MessagingException {
         this.allMessageCount = this.folder.getMessageCount();
     }

     /**
      * 获取messages中message的数量
      *
      * @return
      */
     public int getMessageCount() {
         this.messageCount = this.messages.length;
         return messageCount;
     }

     /**
      * 获得folder中新邮件的数量
      *
      * @return
      * @throws MessagingException
      */
     public int getNewMessageCount() throws MessagingException {
         return this.folder.getNewMessageCount();
     }

     /**
      * 获得folder中未读邮件的数量
      *
      * @return
      * @throws MessagingException
      */
     public int getUnreadMessageCount() throws MessagingException {
         return this.folder.getUnreadMessageCount();
     }

     /**
      * 获取Part
      */
     public Part getPart() {
         return (Part) message;
     }

     /**
      * 设置Part
      */
     public void setPart(Part part) {
         this.part = part;
     }

     /**
      * 设置附件存放路径
      */

     public void setAttachPath(String attachPath) {
         this.saveAttachPath = attachPath;
     }

     /**
      * 获得附件存放路径
      */

     public String getAttachPath() {
         return saveAttachPath;
     }

     /**
      * 设置eml存放路径
      */

     public void setEmlPath(String emlPath) {
         this.saveEmlPath = emlPath;
     }

     /**
      * 获得eml存放路径
      */

     public String getEmlPath() {
         return saveEmlPath;
     }

     public void setEmlName(String emlName) {
         this.emlName = emlName;
     }

     public String getEmlName() {
         return emlName;
     }

     public void setAttachName(String attachName) {
         this.attachName = attachName;
     }

     public String getAttachName() {
         return attachName;
     }

     public void setExtension(String extension) {
         this.extension = extension;
     }

     public String getExtension() {
         return extension;
     }

     /**
      * 设置日期显示格式
      */

     public void setDateFormat(String format) throws Exception {
         this.dateformat = format;
     }

 
分享到:
评论
1 楼 DepthJava 2010-05-13  
请问楼主,你的就能全部解析?
目前还没找到完全解析的方法,很多邮件mime的格式不标准,纠结中...

相关推荐

    Java发邮件:通过Bean封装.rar

    JavaMail API是Java平台上的标准邮件服务接口,它提供了一系列类和接口,用于发送和接收电子邮件。在这个项目中,我们可能会使用`javax.mail`和`javax.mail.internet`这两个包中的类,如`Session`、`Message`、`...

    javamail.jar

    JavaMail是Java编程环境中用于处理电子邮件的一套API,它提供了创建、发送和接收邮件的功能。在Java应用程序中,我们通常会用到两个关键的库文件:`activation.jar`和`mail.jar`。这两个JAR文件在Spring框架集成邮件...

    java中email邮件发送接受和处理excel文件(xls)实例

    综上所述,Java通过JavaMail API和Apache POI库可以实现电子邮件的发送、接收以及Excel文件的处理。在Spring框架中,这些功能可以更加方便地集成和管理,提高开发效率。通过编写相应的逻辑,你可以创建一个自动化...

    java 发送邮件 spring发送邮件Mail

    `java邮件系统`和`java邮件收发`则涉及到更广泛的邮件处理概念,包括不仅限于发送,还可能包括接收和解析邮件。 综上所述,Java结合Spring框架发送邮件是一个实用且功能强大的解决方案,通过合理的配置和编程,可以...

    Java邮件开发源代码.rar

    通过研究和理解这个Java邮件开发源代码,开发者不仅可以学习到如何使用JavaMail API发送和接收邮件,还能掌握SSM框架的实践应用,这对于进行企业级的课程设计或毕业设计项目非常有帮助。同时,这也是提升Java Web...

    java-emailutil-csvutil.docx

    JavaMail 是一个用于发送和接收电子邮件的开源库,在Java编程中广泛使用。在这个场景中,我们看到一个简单的Java应用,它结合了JavaMail和CSV文件处理来实现批量发送电子邮件的功能。下面将详细解释相关的知识点: ...

    java邮件开发源码jar包笔记

    Java邮件开发是Java编程中的一项重要技能,它允许开发者通过代码发送、接收和处理电子邮件。在Java中,我们主要依赖JavaMail API来实现这个功能。JavaMail API是一个开放源码的API,它提供了多种协议(如SMTP、POP3...

    java发送邮件jar包

    总的来说,这个"java发送邮件jar包"集合了Spring框架和JavaMail API,为开发者提供了一个便捷的途径来实现在Java应用程序中发送邮件的功能。通过适当的配置和编程,可以构建出高效且可靠的邮件发送系统。

    JAVA编程百例(照着例子更容易!)

    实例48 使用JAVAMAIL接收邮件 实例49 获取URL文本 实例5 哈希表和枚举器 实例50 一个简单的WEB服务器 实例51 数据报通讯:聊天吧 实例52 使用ODBC连接数据库 实例53 加载JDBC驱动 实例54 使用语句预处理 实例55 可...

    运用JSPservletJavaBean 技术完成的电子邮件

    在电子邮件应用中,Servlet通常用于接收用户的登录信息、发送邮件等操作。Servlet生命周期包括加载、实例化、初始化、服务和销毁五个阶段,开发者可以在这些阶段中编写相应的处理逻辑。 **JavaBean** 是Java中可...

    javaweb项目中常用的jar包详解.pdf

    JavaMail 是一个 Java API,用于发送和接收电子邮件。它提供了一个统一的接口来访问不同的邮件服务器和协议。使用 JavaMail,可以在 Java 应用程序中实现电子邮件的发送和接收。 2. Antlr-2.7.6.jar:这是一个 ant ...

    struts聊天室 邮件系统 后台管理的struts版本

    “邮件系统”可能涉及到SMTP协议,用于发送邮件,以及POP3/IMAP协议,用于接收邮件。开发者需要熟悉JavaMail API来实现这些功能,同时,还需要处理用户认证、邮件存储和检索等复杂问题。 “后台管理”部分通常包括...

    webServicesXFIReJAR包

    4. **mail-1.4.jar**:这是一个JavaMail API的实现,用于处理SMTP、POP3、IMAP等邮件协议。它使得开发者能够在Java应用中发送和接收电子邮件。 5. **saaj-impl-1.3.jar**:SOAP with Attachments API for Java ...

    Fantasy客户关系管理系统

    JavaMail API为发送和接收电子邮件提供了一套完整的解决方案。在本系统中,JavaMail被用来实现自动化的邮件通知功能,比如当用户完成注册或修改个人信息时,系统可以通过JavaMail向用户发送确认邮件,增强了系统的...

    j2eeAPI 中文版

    8. **JavaMail API**:用于处理电子邮件的发送和接收,包括附件、HTML格式的邮件等功能。 9. **Java API for XML Processing (JAXP)** 和 **Java API for XML Binding (JAXB)**:这两个API分别用于XML的解析和Java...

    j2ee5.0API(包括中文版)

    7. **JavaMail API**:用于发送和接收电子邮件,常用于实现企业级的通知系统。 8. **Java API for XML Processing (JAXP)** 和 **Java API for XML Binding (JAXB)**:这两个API支持XML的解析和转换,以及XML与Java...

    J2EE中文版指南

    8. **JavaMail API**:JavaMail API提供了在Java应用程序中发送和接收电子邮件的能力。 9. **Java API for XML Processing (JAXP)**:JAXP允许Java程序处理XML数据,包括解析、转换和样式表处理。 10. **Java API ...

    J2EE 的 13 种核心技术

    JavaMail是J2EE中用于发送和接收电子邮件的API。它支持多种邮件协议,包括SMTP、POP3和IMAP,使得J2EE应用程序可以轻松地集成电子邮件功能。 #### JAF:应用程序框架 Java应用程序框架(JAF)是J2EE中用于构建桌面...

    j2ee api 免费下载

    8. **JavaMail API**:JavaMail API允许开发者在Java应用中发送和接收电子邮件。 9. **Java API for XML Processing (JAXP)**:JAXP用于处理XML文档,包括解析、验证和转换XML数据。 10. **Java API for XML Web ...

    JAVA_EE中文API

    8. **JavaMail API**:用于发送和接收电子邮件,提供了与多种邮件服务器交互的接口。 9. **Java API for XML Processing (JAXP)**:处理XML文档的API,包括解析、转换和验证等功能。 10. **Java API for XML Web ...

Global site tag (gtag.js) - Google Analytics