Contents
JavaMail
简介
虽然JavaMail是Sun的API之一,但它目前还没有被加在标准的java开发工具包中(Java Development Kit),这就意味着你在使用前必须另外下载JavaMail文件。除此以外,你还需要有Sun的JavaBeans Activation Framework (JAF)。JavaBeans Activation Framework的运行很复杂,在这里简单的说就是JavaMail的运行必须得依赖于它的支持。JAF在Java6之后已经合并到JDK中,而JDK5之前需要另外下载JAF的类库。使用JavaMail,我们可以实现类似OutLook的软件。
压缩包的主要内容
- README.txt:整体介绍JavaMail,需要看一下
- docs/javadocs:The JavaMail API javadocs
- mail.jar:包括JavaMail API和提供所有服务,大部分用户只需要该jar包
- lib/mailapi.jar:只有JavaMail API 不提供其他服务
- lib/imap.jar:The IMAP service provider
- lib/smtp.jar:The SMTP service provider
- lib/pop3.jar:The POP3 service provider
- lib/dsn.jar:multipart/report DSN message support
- lib/imap.jar:Google IMAP provider
- demo:demo示例,简单了解,有需要再看
JavaMail包含两部分内容,一部分是JavaMail API,定义了一组平台无关、独立于通讯协议的邮件程序框架,该部分称为应用级接口,也就是供我们调用的部分,另一部分是service provider,该部分使用特定的协议语言来实现第一部分定义的抽象类和接口,这些协议包括:SMTP、NNTP、POP3、IMAP,如果让JavaMail与邮件服务器通信,就需要相应的协议支持,该部分称为服务提供者接口,也就是JavaMail自身需要的协议支持。大多数情况下只需要使用mail.jar就可以了。
示例
一个发送文本的简单示例
1 | Properties props = new Properties(); |
代码中的me@163.com
、my-password
、you@example.com
要进行替换。
163新注册的邮箱不能发邮件,否则会抛出javax.mail.MessagingException
- java.util.Properties:属性对象
- javax.mail.Session:上下文环境信息,如服务器的主机名、端口号、协议名称等
- javax.mail.Message:邮件模型,发送邮件和接收邮件的媒介,封装了邮件的信息,如发件人、收件人、邮件标题、邮件内容等,一般用的是子类MimeMessage
- javax.mail.Transport:连接邮件SMTP服务器,发送邮件
- javax.mail.Address:地址类,这个地址类主要是表示邮件发送人和邮件接收人的地址,一般主要用的是InternetAddress。
- javax.mail.Store:连接邮件POP3、IMAP服务器,收取邮件
- javax.mail.Folder:文件夹类,该文件夹就是消息的具体所在文件夹,默认的邮件均在INBOX文件中。
国内常见的几个免费邮件服务器名如下:
- 网易免费邮箱:发送服务器:smtp.163.com 接收服务器:pop.163.com
- 新浪免费邮箱:发送服务器:smtp.sina.com.cn 接收服务器:pop3.sina.com.cn
- 搜狐邮箱:发送服务器:smtp.sohu.com 接收服务器:pop3.sohu.com
参考
Java Mail(二):JavaMail介绍及发送一封简单邮件
javamail发送邮件的简单实例
Java网络编程之JavaMail发送邮件和接受邮件