============ JavaMail概述 ============ 1 JavaMail是什么 JavaMail是由Sun定义的一套用于收发电子邮件的接口,不同厂商提供具体实现。 JavaMail没有被包含在JDK中,它是J2EE的一部分。 针对JavaMail接口,不同厂商可以有选择地实现不同的邮件协议: - SMTP,简单邮件传输协议,用于发送电子邮件; - POP3,邮局协议第三版,用于接收电子邮件; - IMAP,互联网消息协议,POP3的替代协议。 以上三种邮件协议都有对应SSL加密传输的安全版本: - SMTPS,安全简单邮件传输协议 - POP3S,安全邮局协议第三版 - IMAPS,安全互联网消息协议 对于非纯文本形式的邮件内容,JavaMail还需要JAF (Java Activation Framework)支持。 2 相关协议 2.1 SMTP Simple Mail Transfer Protocol,简单邮件传输协议。 发送方SMTP服务器--->接收方SMTP服务器 ^ | | v JavaMail 支持POP/IMAP协议的应用 ^ | | v 邮件 邮件 2.2 POP3 Post Office Protocol 3,邮局协议第三版。 每个用户一个邮箱。 2.3 IMAP Internet Message Access Protocol,互联网消息协议。 一个用户在服务器上可以同时拥有多个文件夹,这些文件夹可以同时被多个用户共享。 2.4 MIME Multipurpose Internet Mail Extensions,多用途互联网邮件扩展。 不是邮件传输协议,定义了邮件内容(包括附件)的格式。 3 关键对象 3.1 属性(Properties) 邮件服务器的地址、端口、用户名、密码等信息。 _____________________________________________________________ 属性名 | 类型 | 说明 _______________|_________|___________________________________ mail.smtp.host | String | SMTP服务器地址,如smtp.sina.com.cn mail.smtp.port | int | SMTP服务器端口,默认为25 mail.smtp.auth | boolean | 是否需要身份认证,默认为false mail.smtp.user | String | 用户名 mail.smtp.from | String | 邮件源地址 _______________|_________|___________________________________ 3.2 会话(Session) 接收属性,初始化JavaMail环境。 3.3 传输(Transport)和存储(Store) 传输即发送,存储即接收。 3.4 消息(Message) 邮件内容。 Message是个抽象类,其子类MimeMessage最为常用,表示不同MIME类型的邮件内容。 3.5 地址(Address) 对方邮箱。 3.6 认证者(Authenticator) 用户名和密码。