JavaMail概述

1.概述

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。JavaMail是由Sun定义的一套收发电子邮件的API,它可以方便地执行一些常用的邮件传输,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。

厂商所提供的JavaMail服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:

  • SMTP:单间邮件传输协议,用于发送电子邮件的传输协议
  • POP3:用于接受电子邮件的标准协议
  • IMAP:互联网消息协议,是POP3的替代协议

这三种协议都有对应SSL加密传输协议,分贝是SMTPS,POP3S和IMAPS。除JavaMail服务提供程序之外,JavaMail还需要JAF(JavaBeans Activation Framework)来处理不是纯文本的邮件内容,这包括MIME(多用途互联网邮件扩张)、URL页面和文件附件等内容。

2.JavaMail相关类

2.1 Properties属性对象

由于JavaMail需要和邮件服务器进行通信,这就要求程序提供许多注入服务器地址、端口、用户名、密码等信息,JavaMail通过Properties对象封装这些属性对象

属性名类型说明
mail.smtp.hostStringSMTP服务器地址,如smtp.sina.com.cn
mail.smtp.portintSMTP服务器端口号,默认为25
mail.smtp.userStringSMTP默认的登录用户名
mail.smtp.authbooleanSMTP服务器是否需要用户认证,默认为false
mail.smtp.fromString默认的邮件发送源地址
mail.smtp.timeoutintI/O连接超时时间,单位为毫秒,默认为永不超时

2.2 Session会话对象

Session是一个很容易被误解的类,这归咎于混淆视听的类名。千万不要以为这里的Session像HttpSession一样代表真实的交互会话,但创建Session对象时,并没有对应的物理连接,它只不过是一对配置信息的集合。

Session的主要作用,包括两方面:

  1. 接受各种配置属性信息:通过Properties对象设置的属性信息
  2. 初始化JavaMail环境:根据JavaMail的配置文件,初始化JavaMail环境,以便通过Session对象创建其他重要类的实例。

2.3 Transport和Store传输

邮件操作只有发送或接受两种处理方式,JavaMail将这两种操作描述为传输(javax.mail.Transport)和存储(javax.mail.Store),传输对应邮件的发送,而存储对应邮件的接口。

2.4 Message消息对象

一旦获得Session对象,就可以继续创建要发送的消息。这由Message类来完成。因为Message是个抽象类,您必须用一个子类,多数情况为javax.mail.internet.MimeMessage。MimeMessage是个能理解MIME类型和头的电子邮件消息。

2.5 Address地址

一旦你创建了Session和Message,并将内容填入消息后,就可以用Address确定信件地址了。和Messege一样,Address也是个抽象类。你用的是javax.mail.internet.InternetAddress类。

2.6 Authenticator认证者

与java类一样,JavaMail API也可以利用Authenticator通过用户名和密码访问受保护的资源。对于含电子邮件地址,只要传递电子邮件地址到构造器就行了。与java类一样,JavaMail API也可以利用Authenticator通过用户名和密码访问受保护的资源。对于JavaMail API来说,这些资源就是邮件服务器。JavaMail Authenticator在javax.mail包中,而且它和java.net中同名的类Authenticator不同。两者并不共享同一个Tuthenticator,因为JavaMail API用于Java 1.1,它没有java.net类别。要使用Authenticator,先创建一个抽象类的子类,并从getPasswordAuthentication()方法中返回PasswordAuthentication 实例。创建完成后,您必需向session注册 Authenticator。然后,在需要认证的时候,就会通知Authenticator。您可以弹出窗口,也可以从配置文件中(虽然没有加密是不安全的)读取用户名和密码,将它们作为PasswordAuthentication对象返回给调用程序。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值