基础知识
网络上实现邮件功能,就必须要有专门的邮件服务器,这个邮件服务器类似于现实中的邮局,其主要负责接收用户投递来的邮件和将邮件投递到相对应的用户邮箱中…
SMTP服务器地址:一般是 smtp .xxx .com,比如163邮箱是 smtp.163 .com,qq邮箱是 smtp.qq .com
传输协议
-
SMTP协议:
发送邮件,通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。 -
POP3协议:
接收邮件,通常吧处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。
- User001通过smtp协议连接到SMTP发送服务器,然后发送邮件到了QQ的邮件服务器
- QQ的邮件服务器发现需要交付的地址同样是QQ邮件服务器
- 将这封邮件存储在User002账号的邮箱空间中
- User002通过POP3接收协议连接到POP服务器取出邮件
- 从User002的邮箱空间中取出邮件
- 由POP3服务器将取出的邮件交给User002
注意:要是没有收到,很有可能是你的邮箱认为接收的邮件是垃圾邮件…
Java发送邮件
JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面所讲的SMTP,POP3,IMAP,还有MIME等。我们在使用JavaMail API 编写邮件时,无须考虑邮件的底层实现细节,只要调用JavaMail 开发包中相应的API类就可以了。
使用Java发送 E-mail 十分简单,但是首先你应该准备 JavaMail API 和Java Activation Framework 。
得到两个jar包:
- mail.jar
- activation.jar
我们可以先尝试发送一封简单的邮件,确保电脑可以连接网络。
创建包含邮件服务器的网络连接信息的Session对象。
创建代表邮件内容的Message对象
创建Transport对象,连接服务器,发送Message,关闭连接
主要有四个核心类,我们在编写程序时,记住这四个核心类,就很容易编写出Java邮件处理程序。