手把手教大家,使用SpringBoot框架发送Java邮件协议
Java Mail 基础知识
首先,我们先了解一些基础知识。
电子邮件(E-mail)是因特网上最早流行的一种应用,并且仍然是当今因特网上最重要、最实用的应用之一。
传统的电话通信属于实时通讯,存在以下两个缺点:
1、电话通讯的主叫和被叫双方必须同时在场;
2、一些不是十分紧迫的电话也常常不必要地打断人们的工作或休息。
电子邮件与邮政系统的寄信相似。
1、发件人将邮件发送到自己使用的邮件服务器;
2、发件人的邮件服务器将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱;
3、收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件。
电子邮件的特点:
电子邮件使用方便、传递迅速而且费用低廉。它不仅可以传递文字信息,而且还可附上声音和图像。
电子邮件的组成:
电子邮件系统采用客户/服务器方式。
电子邮件系统的三个主要组成构件:用户代理,邮件服务器以及电子邮件所需的协议。
用户代理是:用户与电子邮件系统的接口,又称为电子邮件客户端软件。
邮件服务器:是电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时,还要负责维护用户的邮箱。
协议:包括邮件发送协议(SMTP)和邮件读取协议(POP3、IMAP)
进一步说明邮件发送和接收过程
发送方的用户代理作为SMTP客户,与发送方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接,使用SMTP协议来发送邮件给发送方邮件服务器。发送方邮件服务器中的SMTP客户,与接收方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接,使用SMTP协议来发送已收到的待转发邮件给接收方邮件服务器。接收方的用户代理作为POP3客户,与接收方邮件服务器中的POP3服务器进行TCP连接,然后基于这条连接,使用POP3协议,从接收方邮件服务器读取邮件。
邮件发送协议的使用范围:包含发送方用户代理到发送方邮件服务器,以及发送方邮件服务器到接收方邮件服务器,两部分。
邮件读取协议使用范围:接收方用户代理到接收方邮件服务器这一部分。
邮件发送协议
SMTP协议
简单邮件传送协议SMTP(Simple Mail Transfer Protocol),一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。要为一个给定的域名决定一个SMTP服务器,需要使用MX (Mail eXchange)DNS。
SMTP协议功能
1、SMTP是一组用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
2、SMTP是一种提供可靠且有效电子邮件传输的协议。它是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
3、SMTP重要的特性之一是它能跨越网络传输邮件,也即“SMTP邮件中继”。
SMTP协议的工作原理
电子邮件的信息格式
电子邮件的信息格式并不是由SMTP定义的,而是在RFC 822中单独定义的。这个RFC文档已在2008年更新为RFC 5322。一个电子邮件由信封和内容两部分。而内容由有首部和主体两部分组成。首部和主体的信息需要用户来填写。
首部中包含一些关键字,后面加上冒号。
关键字From:发件人的电子邮箱地址,一般由邮件系统自动填入。
关键字To(必填):后面填入一个或多个收件人的电子邮件地址。
关键字Cc:后面填入一个或多个收件人以外的抄送人的电子邮件地址,抄送人收到邮件后可看可不看邮件,可回可不回邮件。
关键字Subject(必填):后面填入邮件主题,他反应邮件的主要内容。邮件的主体部分才是用户想传递给收件人的和信息信息。
SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或者其它的二进制对象。
SMTP不能满足传送多媒体邮件(例如带有图片、音频或视频数据)的需要,并且许多其他非英语国家的文字(中文、俄文、甚至带有重音符号的法文或德文)也无法使用SMTP传送。
为了解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)
1、增加了5个新的邮件首部字段,这些字段提供了有关邮件主体的信息。
2、定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。3、定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。
实际上,MIME不仅仅用于SMTP,也用于后来的同样面向ASCII字符的HTTP。
邮件读取协议
常用的邮件读取协议有以下两个:
邮局协议POP(Post Office Protocol),POP3是其第三个版本,是因特网正式标准。非常简单、功能有限的邮件读取协议。用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机。不允许用户在邮件服务器上管理自己的邮件。
因特网邮件访问协议IMAP(Internet Message Access Protocol),IMAP4是其第四个版本,目前还只是因特网建议标准。功能比POP3强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是一个联机协议。
POP3和IMAP4都采用基于TCP连接的客户/服务器方式。POP3使用熟知的端口110,IMAP4使用数值端口143。
基于万维网的电子邮件
通过浏览器登录(提供用户名和口令)邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。这种工作模式与IMAP类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。
邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不是将邮件直接下载到本地进行管理。