java mail

1、为何要学javamail

大部分的web应用都须要集成邮件发送功能 java

例如: web

1给新注册的用户发一封注册成功邮件(通常会包含一个激活的链接目的是为了验证邮件的真伪) 服务器

2给网站全部的用户发送最近的优惠活动 网站

3用户长时间未登录网站,发送一封邮件进行提醒 ui

上述的三种状况,咱们不可能人工地为每一个用户发送邮件,这时就须要应用程序具有自动发送邮件的功能 编码

2、javamail中的基本概念

1. 邮件服务器

在 internet 网上发送和接收邮件都必须经过一个专门服务器,处理邮件的服务器咱们称为邮件服务器 spa

如今不少门户网站都拥有本身的邮件服务器,例如:sinasohu163 命令行

2. 电子邮箱

电子邮箱是指用户在邮件服务器上申请的帐户, code

邮件服务器会为每一个帐户分配必定的空间用于存储发送和接收的邮件 ip

通俗地理解, 邮件服务器就比如生活中的邮局,电子邮箱就比如生活中的信箱

咱们发送一封电子邮件就须要将邮件发送给对方电子邮箱所在的服务器,对方能够等待服务器将信件送到邮箱或直接去服务器上收取邮件

3. 传输协议 

在互联网上任何数据的传输都须要遵照协议,好比ie与服务器的数据交互遵循的是http协议

邮件在发送过程当中也须要遵照必定的协议

1)用户发送一封电子邮件须要遵循 SMTP 协议

       ehlo 主机名  ehlo

       auth login //通过base64编码后的用户名和密码

       mail from:<aaa@itcast.cn>

       rcpt to:<bbb@itcast.cn>

       Data   .号表明邮件内容的结束

       quit

2)用户接收一封电子邮件须要遵循 POP3 协议

       user<SP>username<CRLF> 

       pass<SP>password<CRLF>  

       stat<CRLF> 返回邮箱的统计信息

       list<SP>[msg#]<CRLF>返回某一封邮件的统计信息

       retr<SP>msg#<CRLF>  最重要的一个命令  接收指定编号的邮件

       quit<CRLF> 

3)邮件服务器也会根据功能的不一样分为接收邮件的服务器和发送邮件的服务器

发送邮件的服务器咱们习惯称为SMTP 服务器 默认监听25端口

接收邮件的服务器咱们习惯称为 POP3 服务器 默认监听110端口

4) 新浪的一个电子邮箱给搜狐的一个电子邮箱发送邮件的过程以下图所示

资料

新浪服务器   POP3服务器: pop3.sina.comSMTP服务器: smtp.sina.com

搜狐服务器    pop3.sohu.com smtp.sohu.com

 

4. 实验:

1) 安装一台易邮服务器,新建两个邮件帐号

注册的帐号是 zhangsan

电子邮箱地址: zhangsan@itcast.cn

2) dos命令行手动输入命令完成发送邮件(smtp)和接收邮件(pop3)

提示: 用户名和密码须要使用base64编码

String username = "aaa";

String password = "123456";

BASE64Encoder encoder = new BASE64Encoder();

System.out.println(encoder.encode(userName.getBytes()));

System.out.println(encoder.encode(password.getBytes()));

3) 经过RFC822文档实现发送一封简单邮件

该文档规定了如何写一封简单邮件

文档中规定邮件分为邮件头和邮件体两部分,两部分须要使用一个空行来分隔,邮件以一个.结束

邮件头

from 指定发件人

to 指定收件人

subject 指定主题

cc\bcc 指定抄送和密抄

邮件体

xxxxx

例:

ehlo

auth login

YWFh

MTIzNDU2

mail from:aaa@itcast.cn

rcpt to:bbb@itcast.cn

Data

from<aaa@itcast.cn>

to<bbb@itcast.cn>

subject<a mail>

xxxxxxxxxxxx

.

RFC822文档有漏洞,能够冒名发送邮件

3) 配置outlook软件 完成邮件的发送和接收

3、写java程序发送mail

1. Mime 协议

2. javamail 

Session 与邮件服务器的会话

MimeMessage   Mime消息

MimeMultipart Mime消息体

MimeBodyPart  Mime消息体个部分数据

Transport       用于发送邮件

相关文章
相关标签/搜索