1.Session类
Session 类定义了一个基本邮件会话(session),是Java Mail API最高层入口类。所有其它类都是经由这个session 才得以生效。Session 对象用 Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程序中共享的其它信息。
2.Message类
当我们建立了Session对象后,便可以被发送的构造信息体了。在这里SUN提供了Message类型来帮助开发者完成这项工作。由于Message是一个抽象类,大多数情况下,我们使用javax.mail.internet.MimeMessage这个子类,MimeMessage 是个能理解 MIME 类型和头的电子邮件消息,该类是使用MIME类型、MIME信息头的邮箱信息。信息头只能使用US-ASCII字符,而非ASCII字符将通过编码转换为ASCII的方式使用。
3.Address类
一旦您创建了 Session 和 Message,并将内容填入消息后,就可以用 Address 确定信件地址了。和 Message 一样,Address 也是个抽象类。您用的是 Javax.mail.internet.InternetAddress
邮件地址类,像Message一样,Address类也是一个抽象类,所以我们将使用javax.mail.internet.InternetAddress这个子类。
4.Authenticator类
像java.net类那样,JavaMail API通过使用授权者类(Authenticator)以用户名、密码的方式访问那些受到保护的资源,在这里“资源”就是指邮件服务器。在javax.mail包中可以找到这个JavaMail的授权者类(Authenticator)。
在使用Authenticator这个抽象类时,我们必须采用继承该抽象类的方式,并且该继承类必须具有返回PasswordAuthentication对象(用于存储认证时要用到的用户名、密码)getPasswordAuthentication()方法。并且要在Session中进行注册,使Session能够了解在认证时该使用哪个类。
下面代码片断中的MyAuthenticator就是一个Authenticator的子类。
Properties props = new Properties();
Authenticator auth = new MyAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
5.Transport类
消息发送的最后一部分是 使用 Transport 类。
在发送信息时,Transport类将被用到。这个类实现了发送信息的协议(通称为SMTP),此类是一个抽象类,我们可以使用这个类的静态方法send()来发送消息:
Transport.send(message);
当然,方法是多样的。我们也可由Session获得相应协议对应的Transport实例。并通过传递用户名、密码、邮件服务器主机名等参数建立与邮件服务器的连接,并使用sendMessage()方法将信息发送,最后关闭连接:
message.saveChanges(); // implicit with send()
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
评论:上面的方法是一个很好的方法,尤其是在我们在同一个邮件服务器上发送多个邮件时。因为这时我们将在连接邮件服务器后连续发送邮件,然后再关闭掉连接。send()这个基本的方法是在每次调用时进行与邮件服务器的连接的,对于在同一个邮件服务器上发送多个邮件来讲可谓低效的方式。
注意:如果需要在发送邮件过程中监控mail命令的话,可以在发送前设置debug标志:
session.setDebug(true)。
6.Store类和Folder类
Store类实现特定邮件协议上的读、写、监视、查找等操作。通过Javax.mail.Store类可以访问Javax.mail.Folder类。
Folder类用于分级组织邮件,并提供照Javax.mail.Message格式访问email的能力。
接收邮件和发送邮件很类似都要用到Session。但是在获得Session后,我们需要从Session中获取特定类型的Store,然后连接到Store,这里的Store代表了存储邮件的邮件服务器。在连接Store的过程中,极有可能需要用到用户名、密码或者Authenticator。
Store store = session.getStore("pop3");
store.connect(host, username, password);
在连接到Store后,一个Folder对象即目录对象将通过Store的getFolder()方法被返回,我们可从这个Folder中读取邮件信息:
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
上面的例子首先从Store中获得INBOX这个Folder(对于POP3协议只有一个名为INBOX的Folder有效),然后以只读(Folder.READ_ONLY)的方式打开Folder,最后调用Folder的getMessages()方法得到目录中所有Message的数组。
注意:对于POP3协议只有一个名为INBOX的Folder有效,而对于IMAP协议,我们可以访问多个Folder(想想前面讲的IMAP协议)。而且SUN在设计Folder的getMessages()方法时采取了很智能的方式:首先接收新邮件列表,然后再需要的时候(比如读取邮件内容)才从邮件服务器读取邮件内容。
在读取邮件时,我们可以用Message类的getContent()方法接收邮件或是writeTo()方法将邮件保存,getContent()方法只接收邮件内容(不包含邮件头),而writeTo()方法将包括邮件头。
System.out.println(((MimeMessage)message).getContent());
在读取邮件内容后,别忘记了关闭Folder和Store。
folder.close(aBoolean);store.close();
传递给Folder.close()方法的boolean 类型参数表示是否在删除操作邮件后更新Folder。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaoping8411/archive/2009/11/02/4758489.aspx
分享到:
相关推荐
对于本文提到的“JavaMail使用总结---3”,可能涵盖了更高级或特定的JavaMail用法,例如使用SSL/TLS加密通信、处理邮件附件、读取邮件、解析邮件头等。由于没有具体的博客内容,这部分无法提供详细讲解,但这些都是...
Commons Email库的核心类是`Email`,它允许开发者构建邮件,添加附件,设置抄送和密送,以及发送HTML或纯文本邮件。此外,它还支持SSL和TLS安全连接,以保护邮件传输过程中的数据安全。 下面是一些使用这两个库的...
JavaMail 的核心组件包括 javax.mail 和 javax.mail.internet 包,它们包含了处理邮件的类和接口。例如,`Session` 类是邮件会话的入口点,用于配置邮件服务器的相关信息,如主机名、端口号、用户名和密码。`Message...
在这个“javamail包--自己用的”项目中,我们可以深入探讨JavaMail的核心概念和使用方法。 首先,要使用JavaMail发送邮件,我们需要引入相关的依赖库。通常,这包括JavaMail API(javax.mail)和Java Activation ...
JavaMail 的核心组件包括 javax.mail 和 javax.mail.internet 包,它们提供了丰富的类和接口来处理电子邮件。以下是一些主要知识点: 1. **Session**:这是JavaMail的起点,所有的邮件操作都始于创建一个 Session ...
首先,你需要引入 JavaMail 的核心库 javax.mail 和 javax.mail.internet。这两个库提供了发送邮件所需的所有接口和类。例如,`javax.mail.Session` 代表邮件会话,`javax.mail.Transport` 负责实际的邮件传输,而 `...
首先,我们需要了解`javamail`的核心概念。它主要涉及`Session`、`Message`和`Transport`。`Session`代表与邮件服务器的会话,`Message`用于构建邮件内容,`Transport`则负责将邮件实际发送出去。在`commons-mail`中...
mail.jar是JavaMail的核心库,包含了处理SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)等邮件协议的类和方法。 JavaMail 1.4.3 版本的关键特性包括: 1. **多协议支持**:JavaMail ...
JavaMail 的核心组件包括 `javax.mail` 和 `javax.mail.internet` 包,它们包含了创建、读取和操作邮件所需的所有类和接口。例如,`Session` 类用于配置邮件会话参数,如服务器地址、端口和认证信息;`Message` 类...
在实际应用中,为了使用ant-javamail-1.6.jar,我们需要将其解压缩后添加到Ant的类路径中。在build.xml文件中,可以这样引用: ```xml <pathelement location="path/to/ant-javamail-1.6.jar"/> ``` 然后...
本文将深入探讨"ant-javamail-1.6.4.jar.zip"这个压缩包所包含的核心知识点,以及它们在实际开发中的应用。 首先,我们来了解Apache Ant。Ant是Apache软件基金会的一个项目,它是一个基于Java的构建工具,类似于...
8. **Provider 类**:JavaMail 使用服务提供者模式,允许添加新的邮件协议支持。开发者可以通过扩展 Provider 类来支持自定义的邮件协议。 在使用 JavaMail 时,通常需要进行以下步骤: 1. 创建 `Session` 实例,...
以下将详细介绍 JavaMail API 的主要功能和使用方法。 1. **SMTP 协议支持**:JavaMail 提供了 SMTP(简单邮件传输协议)服务,用于发送邮件。通过 `Session` 对象设置 SMTP 服务器信息,然后创建 `MimeMessage` ...
- **Session**: 是JavaMail的核心,负责管理邮件连接和属性。你可以设置SMTP服务器地址、端口、用户名和密码等信息。 - **Message**: 表示一封邮件,包含了邮件的头信息(如发件人、收件人、主题、日期等)和邮件...
使用`javamail-1.6`时,开发者需要将其添加到项目依赖中,然后通过创建邮件会话,构建邮件消息对象,设置发件人、收件人、主题和正文,最后通过Transport类发送邮件。对于接收邮件,可以通过Folder和Message对象进行...
本文将深入探讨JavaMail API的核心类,帮助你理解如何利用这些类来实现邮件的发送与接收。 1. **`Session` 类**:`Session` 是JavaMail API的基础,它代表了与邮件服务器的会话。通过`Properties` 对象设置配置信息...
在使用"javamail-1_3_1-upd.zip"时,开发者可能需要将这些文件解压后导入到项目类路径中,以便在代码中引用和使用JavaMail API。由于这是个更新包,可能包含了对旧版本的修复和改进,因此在使用前应阅读相关文档以...
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。
下面将详细介绍JavaMail发送邮件的基本流程和关键知识点: 1. **配置Properties对象**:在发送邮件前,需要配置`Properties`对象,设置SMTP服务器的相关信息,如主机名、端口号、是否使用SSL/TLS加密等。例如: ``...