JavaMail开发与邮件原理
基本概念
邮件服务器:
要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器,例如sina, 163等他们都有自己的邮件服务器。
这些服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到接收者的电子邮箱。
电子邮箱(Email地址):
电子邮箱的获得需要在邮件服务器上进行申请,电子邮箱其实就是用户在邮件服务器上申请的一个账号, 这个账号会有一定的空间,用来发送邮件和保存别人发送过来的电子邮件。
发邮件是从客户端把邮件发送到邮件服务器,收邮件是把邮件服务器的邮件下载到客户端。
邮件传送协议
常见的邮件协议包括:
SMTP:简单邮件传输协议,用于发送电子邮件的传输协议; SMTP服务器一般工作在25号端口
POP3:用于接收电子邮件的标准协议; POP3一般工作在110端口
IMAP:互联网消息协议,是POP3的替代协议。
其实每个邮件服务器都由SMTP服务器和POP3服务器构成,其中SMTP服务器负责发邮件的请求,而POP3负责收邮件的请求。
当然,有时我们也会使用163的账号,向126的账号发送邮件。这时邮件是发送到126的邮件服务器,而对于163的邮件服务器是不会存储这封邮件的。
邮件服务器名称
smtp服务器的端口号为25,服务器名称为smtp.xxx.xxx。
pop3服务器的端口号为110,服务器名称为pop3.xxx.xxx。
例如:
163:smtp.163.com和pop3.163.com;
126:smtp.126.com和pop3.126.com;
qq:smtp.qq.com和pop3.qq.com;
sohu:smtp.sohu.com和pop3.sohu.com;
sina:smtp.sina.com和pop3.sina.com。
telnet收发邮件
发邮件
这个示例实在命令窗口简单示范的,
我们在进行登录时输入的用户名和密码必须是经过base64算法加密后的。
telnet smtp.163.com 25 //连接163的smtp服务器:
//连接成功后需要如下步骤才能发送邮件
ehlo xxx //1. 与服务器打招呼:ehlo你的名字
auth login //2. 发出登录请求:
aXRjYXN0X2N4ZkAxNjMuY29t //3 输入加密后的邮箱名:(itcast_cxf@163.com)aXRjYXN0X2N4ZkAxNjMuY29t
aXRjYXN04 //4. 输入加密后的邮箱密码:(itcast)aXRjYXN0
from:mail from:<suixin_send@163.com> //5. 输入谁来发送邮件
to:rcpt to:<suixin_receive@126.com> //6. 输入把邮件发给谁,
data //7. 发送填写数据请求:data
from:<suixin_send@163.com>
to:<suixin_receive@sina.com>
subject: 测试 //8. 开始输入数据,数据包含:from、to、subject,以及邮件内容,如果输入结束后,以一个“.”为一行,表示输入结束:
把课件不小心删了, 真的烦!!!! //NT:在标题和邮件正文之间要有一个空行!当要退出时,一定要以一个“.”为单行,表示输入结束。
.
quit //9. 最后一步:
收邮件
1 telnet收邮件的步骤
pop3无需使用Base64加密!