前言
电子邮件(e-mail)属于互联网一种最为典型的应用,虽然伴随着即时通信软件的广泛使用,它的通信功能有所减弱,但是在账号注册、账号安全以及工作对接方面仍然占有很大应用空间。电子邮件系统包含三个重要的组件,即用户代理、邮件服务器,以及邮件发送协议(如SMTP)和邮件读取协议(如POP3)。Spring-boot-email属于用户代理部分,使用SMTP、IMAP、MIME等协议进行邮件发送,它们的底层通信原理都是TCP的连接。
背景知识
电子邮件由信封(envelope)和内容(content)两部分内容构成,在邮件信封上,最重要的就是收件人的地址,TCP/IP体系的邮件系统规定邮件地址(e-mail address)的格式如下:
用户名@邮件服务器的域名
前端界面开发的程序员需要注意的是,这个邮箱标准格式在软件开发中通常用来做格式规则校验,以作为输入有效性的判定,所以很有必要了解一下标准的邮件地址格式要求。
SMTP简单邮件传送协议,SMTP规定了14条命令和21中应答信息。每条命令由几个字母组成,而每一种应答的信息通畅只有一行信息,由一个3位数字的代码(如200 OK)开始,后面带上简单的说明信息。了解邮件底层协议是为了更好应对邮件发送过程中的各种异常,下面是SMTP的一些常用命令:
HELO:由客户端连接SMTP服务器后发送,表明连接开始
AUTH LOGIN:客户端与SMTP服务端认证过程,填写相应的账号密码。
MAIL:邮件传送开始,后面有发件人地址,如MAIL FROM:<xxxx@xxx>
RCPT:可以是一到多个,代表收件人地址,如RCPT TO:<xxxx@xxx>