首页 » 网络 » SMTP协议

SMTP协议

RFC5321介绍了SMTP(Simple Mail Transfer Procotol)简单邮件传输协议。

ESMTP是扩展的SMTP协议,已被广泛使用。在ESMTP中,客户端首先发布一个EHLO而不是HELO命令启动一个与服务器的会话。

SMTP状态码

邮件转发(forwarding)

251 User not local; will forward to <forward-path>
非本地用户,将转发到目标地址。
551 User not local; please try <forward-path>
非本地用户,并拒绝转发。邮件客户端应该转发邮件,或把错误信息直接展现给用户。

SMTP命令

用telnet测试SMTP

连接SMTP服务器:

$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 vps950 ESMTP unknow

连接成功后服务器响应:

220 vps950 ESMTP unknow

输入命令EHLO

EHLO berlinix.com

服务器返回支持的功能列表:

250-vps950
250-PIPELINING
250-SIZE 10485760
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

输入邮件发送命令:

MAIL FROM:<bailing@berlinix.com>

服务器响应:

250 2.1.0 Ok

输入收件人地址:

RCPT TO:<bailing@163.com>

服务器响应:

250 2.1.5 Ok

DATA命令开始邮件内容的编辑:

DATA

服务器响应(如果某行只包含一个".",则表示结束邮件编辑):

354 End data with .

编辑邮件内容,并以"."结束编辑:

Hello berlinix,
Learn STMP Protocol.
.

服务器响应(成功加入队列):

250 2.0.0 Ok: queued as 142C5100B52

最后,告别SMTP Server:

QUIT 

服务器响应:

221 2.0.0 Bye
Connection closed by foreign host.

分享

0