通过javamai发送邮件,是很常见,也很容易完成的一个功能。在功能完成的基础上,本文主要是作为拓展,了解发送邮件更多相关的知识。例如:javamail.jar api了解、邮件发送失败的一些情况及返回值、邮件类型、附件的添加、传输协议等。实现完代码,多了解,多扩展总是好的。
一、了解集中协议
SMTP
POP
IMAP
MIME
需要引入activation.jar和mail.jar,为什么activation.jar?
使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF.activation.jar 文件就是JAF的框架jar包。
对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
1、访问数据源中的数据.
2、获知数据源的数据类型.
3、获知可对数据进行的各种操作.
4、用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象.
javaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型。
三、发送邮件依靠哪些类完成
javaMail核心类:Session、Transport、Message、Authenticator、Address。
1. javax.mail.Session类:表示邮件会话,是JavaMail API的最高层入口类。就像Http会话那样,我们进行收发邮件的工作都是基于这个会话的。
2. javax.mail.Transport类:根据指定的邮件发送协议(通常是 SMTP),通过指定的邮件发送服务器来发送邮件。
3. javax.mail.Message类:代表电子邮件。Message是一个抽象类,大多数情况下,我们使用javax.mail.internet.MimeMessage这个子类
4.javax.mail.Store类:表示接收邮件服务器上的注册用户的存储空间,通过Store类的getFolder()方法,可以访问用户的特定邮件夹。
5. javax.mail.Folder类:代表邮件夹。
6. javax.mail.Address类:代表邮件地址。可以设置发件人、收件人、抄送人、密件抄送
7. Authenticator 以用户名、密码的方式访问那些受到保护的资源,在这里“资源”就是指邮件服务器
按功能又分为三大类:
1. 创建和解析邮件内容的Message,Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。
2. 发送邮件的Transpor;接收邮件的Store,Transport的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。Store的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。
3. 定义整个应用程序所需环境的Session,收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。
邮件组织结构相关的API
MimeMessage类表示整封邮件。
MimeBodyPart类表示邮件的一个MIME消息。
MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息
四、可操作邮件类型:
发送html邮件
发送纯文本邮件
发送带有附件的邮件
回复邮件
转发邮件