`
envoydada
  • 浏览: 64899 次
社区版块
存档分类
最新评论
阅读更多

                                                                       JAVAMAIL核心类介绍
JAVAMAIL(所需类包: mail.jar    activation.jar)
JavaMail API 核心类包括:Session,Address,Message,Authenticator,Transpor,Store,Folder.

1.javax.mail.Session
        Session类定义了与远程邮件系统通信的邮件会话(MailSession).JavaMail会话仅仅用于存储与服务器建立连接会话相关的逻辑Session类是JavaMail API最高层入口类。Session对象管理配置选项行和用于与邮件系统交互的用户认证信息,它使用Java.util.Properties对象配置邮件会话的属性,如邮件服务器,用户名,密码及整个应用程序中共享的其它信息。(Session本身并不处理任何授权操作,他只是存储这些授权的信息)
        Session类的构造器是私有的,他不能被继承。他有两个静态方法:getInstance 和getDefaultInstance来获取Session实例,前者创建的不能被其它JVM共享的会话实例,后者创建的可以被其它JVM共享的会话实例。
       Session实例使用的属性
    mail.transport.protocol   邮件传输的协议,getProtocol()方法时返回默认传入协议
    mail.smtp.host                  使用的默认主机
    mail.smtp.port                   主机使用的端口           25
    mail.user                            未指定用户时,传输和存储使用的默认用户           User.name
    mail.from                            发送者的邮件地址
    mail.store.protocol           存储协议,getStore()方法返回默认的存储协议
    mail.protocol.host            替代指定协议的mail.host
    mail.protocol.user            替代指定协议的mail.user
    mail.debug                        用于调试会话
    mail.smtp.auth                  true/false  邮件服务器是否要验证

Properties props  =   new  Properties();
    
// 设置邮件会话的属性
    props.put( " mail.transport.protocol " , " smtp " );
    props.put(
" mail.smtp.host " , " smtp.usish.com " );
    props.put(
" mail.smtp.port " , " 25 " );
        props.put("mail.smtp.auth","true");
    
// 获得邮件会话对象
    mailSession  =  Session.getDefaultInstance(props); // 不使用认证
    mailSession  =  Session.getDefaultInstance(props,authenticator); // 使用认证

2.javax.mail.Authenticator
              
Session.getDefaultInstance(props,authenticator) 创建会话时使用Authenticator对象以进行认证,如果传入null对象,那么和不使用认证的调用方式一致。
              Authenticator代表一个可以为网络连接获取认证信息的对象,它通常通过提示用户输入用户名和密码来收集认证信息,使连接可以访问受保护的资源。首先创建Authenticator的一个子类,并且在会话对象创建时为会话注册该Authenticator对象。

public   class  PopupAuthenticator  extends  Authenticator{
      String username
= null ;
      String password
= null ;
      
public  PopupAuthenticator(){}
      
      
public  PopupAuthenticator(String name,String pwd){
      username 
=  name;
      password 
=  pwd;
      getPasswordAuthentication();
      }
      
protected  PasswordAuthentication getPasswordAuthentication() {
        
return   new  PasswordAuthentication(username, password);
      }
      
}


使用这个验证类

    PopupAuthenticator authenticator  =   new  PopupAuthenticator( " envoydada " , " dada " );
    mailSession 
=  Session.getDefaultInstance(props,authenticator); // 使用认证

3.javax.mail.Address
 
Address类表示电子邮件地址,它是一个抽象类,当要表示多个地址时可以用逗号隔开。
       最经常使用的子类是:javax.mail.internet.InternetAddress提供具体实现,且通常可串行化。如果创建地址只包含电子邮件地址,只要传递电子邮件地址到构造器即可。
//带其它信息的地址
InternetAddress addr = new InternetAddress();
addr.setAddress(
"derek_g@usish.com");
addr.setPersonal(
"derek Guo");

//带多MAIL地址
Address[] addrs = InternetAddress.parse("derek_g@usish.com,envoydada@126.com");

4.javax.mail.Message
       获得Session对象后,可以继续创建要发送的邮件消息,这由Message类来完成。Message实现了Part接口,它表示一个邮件消息,包含一系列属性和一个消息的内容。Message是抽象类,实际使用时必须用一个子类代替以表示集体的邮件格式。如子类javax.mail.internet.MimeMessage , 实现了RFC822和MIME标准。Message子类通常通过字节流构建其实现。
      创建Message的两个构造方法:       
Message message = new MimeMessage(Session session);
MimeMessage message 
= new MimeMessage(MimeMessage message);

获得message之后,可以设置消息的各个部分
      msg.setFrom(new InternetAddress(from));//设置发件人
      msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));//设置收件人
      msg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc));//设置抄送人
      msg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc));//设置暗送人
      msg.setSentDate(d);//设置发邮件的签名时间
      msg.setSubject(subject);//设置邮件主题      
      
//msg.setText(content);//纯文本发送text/plain表示纯文本,默认
      msg.setContent("<meta http-equiv=Content-Type content=text/html; charset=utf-8>邮件测试内容","text/html;charset=utf-8");//html格式发送

5.javax.mail.Transport
         消息发送Transport类。该类使用指定协议发送消息(通常是SMTP)。Transport是抽象类(继承自Service类)提供很多通用方法,如命名传输、连接服务器和监听传输事件等。
         Transport.send(message);  发送邮件。
         还可以进一步控制消息发送:
   
    Transport transport = session.getTransport("smtp");
    transport.connect( (String) props.get(
"mail.smtp.host"), username,password);
    transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
    transport.close();

6.javax.mail.Store
        Store是一个抽象类,它模拟了消息存储器及其内部目录(Folder)访问协议,以存储和读取消息,其子类提供具体实现。
        Store定义的存储器包括一个分层的目录体系,消息存储在目录内,。客户程序可以通过获取一个实现了数据库访问协议的Store对象来访问消息存储器,绝大多数存储器要求用户在访问前提供认证信息,connect方法执行了该认证过程。
     Store store = session.getStore("pop3");//指定协议
     store.connect(host,usename,password);//

7.javax.mail.Folder
   Folder是一个抽象类,用于分级组织邮件,其子类提供针对具体协议的实现。
  Folder代表的目录可以容纳消息或子目录,存储在目录内的消息被顺序计数(从1开始到消息总数),该顺序被称为“邮箱顺序”,通常基于邮件消息到达目录的顺序。邮件顺序的变动将改变消息的序列号,这种情况仅发生在客户程序调用Expunge方法擦除目录内设置了Flags.Flag.DELETED标志位的消息时。执行擦除操作后,目录内消息将重新编号。
       客户程序可以通过消息序列号或直接通过相应的Message对象应用目录中的消息,由于消息序列号在会话中很可能改变,因此应尽可能保存Message对象而非序列号来反复引用对象。
       连接到Store之后,接下来可以获取一个文件夹(Folder)。该文件夹必须先使用open()方法打开,然后才能读取里面的消息:
  
Folder folder = store.getDefaultFolder();
//或 : Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_WRITE);
Message message[] 
= folder.getMessage();
        open()方法指定了要打开的文件夹及打开方式(如Folder.READ_WRITE)。 inbox是POP3唯一可以使用的文件夹。如果使用IMAP,还可以用其它的文件夹。
         获得Message之后,就可以用getContent()获得其内容,或者用writeTo()将内容写入输出流。getContent()方法之能得到消息内容,而writeTo()的输出却包含消息头.
      读完邮件之后要关闭与Folder和Store的连接:
folder.close(aBoolean);
store.close();
分享到:
评论

相关推荐

    JavaMail API核心类

    本文将深入探讨JavaMail API的核心类,帮助你理解如何利用这些类来实现邮件的发送与接收。 1. **`Session` 类**:`Session` 是JavaMail API的基础,它代表了与邮件服务器的会话。通过`Properties` 对象设置配置信息...

    JavaMail组件简单应用

    - **Session**:JavaMail的核心组件,负责邮件会话的创建和配置。它管理与邮件服务器的连接,包括认证信息、属性等。 - **Message**:表示邮件实体,包含了邮件的所有信息,如发件人、收件人、主题、正文和附件等...

    JavaMail工具类

    首先,`Mail.jar`是JavaMail API的库文件,包含了处理邮件所需的各种类和接口,如`javax.mail`包下的`Session`、`Message`、`Transport`等核心类。开发者需要将这个库添加到项目类路径中才能使用JavaMail功能。 `...

    javamail中的核心类

    在JavaMail中,有几个核心类是开发时经常用到的,它们构成了JavaMail的核心功能。 1. `Session` 类:`Session` 是 JavaMail 的全局配置对象,它存储了邮件发送所需的参数,如SMTP服务器地址、端口、用户名、密码等...

    javaMail开发组件包含javaBeans(1.0.2)和javamail(1.4.2)

    总之,JavaMail和JavaBeans是Java平台上进行邮件处理的核心组件。它们为开发者提供了强大的功能,使处理电子邮件变得简单而高效。无论是在企业级应用还是个人项目中,这两个组件都是JavaMail开发的基石。

    javamail(带界面的javamail)

    总的来说,"javamail(带界面的javamail)"项目是一个实用的示例,涵盖了JavaMail的核心功能和GUI编程的结合。它可以帮助开发者理解如何在实际应用中集成邮件服务,同时提供了一种友好的用户交互方式。通过研究这个...

    JavaMail的常用类介绍

    `Session` 类是JavaMail的核心组件,代表了一个邮件会话。每个JavaMail应用至少需要一个`Session`实例,它可以配置多个不同的会话以适应不同的邮件服务需求。`Session.getInstance()`方法用于创建一个新的会话,...

    javamail的jar包:javamail-1.6

    JavaMail的核心组件包括: 1. **MIME支持**:JavaMail 支持多部分MIME消息,允许用户发送包含文本、图像、音频、视频和其他类型附件的复杂邮件。 2. **SMTP协议**:JavaMail 使用简单邮件传输协议(SMTP)来发送...

    JavaMail+JAF+JavaMail_API+JavaMail_API详解

    JavaMail API是JavaMail库的核心部分,它提供了一系列的接口和类,用于创建、发送、接收和管理电子邮件。 JavaMail API详解.chm文件可能是一个帮助文档,详细介绍了如何使用JavaMail API进行邮件操作。它可能涵盖了...

    JavaMail文档

    - `javax.mail.Session` 表示与邮件服务器的会话,是 JavaMail 的核心类。开发者可以配置会话参数,如认证信息、邮件服务器地址等,以连接到邮件服务提供商。 4. **Transport 类**: - `javax.mail.Transport` ...

    JavaMail必需包

    1. **Message类**:这是JavaMail中的核心类,代表一封电子邮件。它包含了邮件的所有属性,如发件人、收件人、主题和正文等。 2. **Session类**:这是JavaMail的上下文对象,负责配置邮件会话参数,如邮件服务器的...

    javamail-lib

    2. **核心组件**:JavaMail的主要组件包括`javax.mail`和`javax.mail.internet`包,其中包含了处理邮件消息、附件、地址、会话等的核心类。 3. **Message类**:这是JavaMail的核心类,代表一封电子邮件。可以设置...

    javamail 所有jar包

    2. **mail.jar**:这个文件是JavaMail的核心库,它包含了所有与邮件处理相关的类和接口。JavaMail API 提供了一系列的类和接口,如`Session`、`Message`、`Address`、`Transport`等,它们用于创建、配置和管理邮件...

    JavaMail相关jar包

    本篇文章将深入探讨JavaMail的核心概念、关键组件以及如何使用这两个特定的jar包——`jaf-1_1_1.zip`和`javamail1_4_7.zip`。 首先,让我们了解JavaMail的基本组件: 1. **JavaMail API**:这是JavaMail的核心部分...

    JavaMail 1.6.0 Final Release

    在“javax.mail.jar”这个压缩包文件中,包含了 JavaMail API 的所有核心类和接口,开发者可以直接导入这个 JAR 文件到他们的项目中,以使用 JavaMail 提供的各种邮件服务功能。例如,`...

    javaMail代码

    2. **核心组件**:JavaMail 主要由 `Session`、`Message`、`Store` 和 `Transport` 等组件构成。`Session` 是邮件会话,负责设置配置信息;`Message` 表示邮件实体;`Store` 用于连接邮件服务器并管理邮箱;`...

    javamail的封装

    主要包括`javax.mail`和`javax.mail.internet`两个主要包,包含`Session`(会话)、`Message`(消息)、`Transport`(传输)等核心类。 2. **SMTP协议**: SMTP(Simple Mail Transfer Protocol)是用于在互联网上...

    javaMail API 跟 javaMail.jar包

    JavaMail API的核心概念包括以下几个部分: 1. **Message**: 这是邮件的基本单元,代表一封电子邮件。通过`Message`对象,我们可以设置邮件的标题、正文、附件、发件人、收件人等信息。 2. **Session**: 是邮件...

    常规JavaMail 邮件发送实用类

    5. `send(MimeMessage message)`: 使用Session实例发送准备好的MimeMessage对象,MimeMessage是JavaMail API中的核心类,用于构建复杂的邮件结构。 为了实现以上功能,JavaMail API的关键类包括`Session`、`...

    javamail.jar,javamail资源包

    `javamail.jar` 文件是JavaMail的核心库,包含了所有必要的类和接口,使得开发者可以在他们的应用程序中集成邮件功能。 在JavaMail中,有几个关键的概念和组件: 1. **Session**: 这是JavaMail中的顶级对象,代表...

Global site tag (gtag.js) - Google Analytics