前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SMTP协议

SMTP协议

作者头像
孤鸿
发布2022-09-23 16:57:21
1.5K0
发布2022-09-23 16:57:21
举报
文章被收录于专栏:孤鸿

> 参考文献 [RFC 5321](https://www.rfc-editor.org/rfc/rfc5321.txt "https://www.rfc-editor.org/rfc/rfc5321.txt")

SMTP基本结构

SMTP设计如下图所示:

代码语言:javascript
复制
+----------+                +----------+
      +------+    |          |                |          |
      | User |<-->|          |      SMTP      |          |
      +------+    |  Client- |Commands/Replies| Server-  |
      +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
      | File |<-->|          |    and Mail    |          |<-->| File |
      |System|    |          |                |          |    |System|
      +------+    +----------+                +----------+    +------+
                   SMTP client                SMTP server

当SMTP客户端有消息需要传输,它就会向SMTP服务器建立一个双向传输通道。SMTP客户端的责任是传输邮件消息给一个或多个SMTP服务器,或者报告它未能这样做。

SMTP扩展

RFC821完成后,从1990年后开始,经过10年努力,此协议被“服务扩展”模型改进,允许客户端和服务器同意利用超出原来SMTP需求的共享功能。当代SMTP实现必须支持基本的扩展机制。例如,服务器必须支持EHLO命令。

SMTP命令

HELO 向服务器标识用户身份。发送者能欺骗,说谎。 EHLO 向服务器标识用户身份。发送者能欺骗,说谎。 AUTH LOGIN 向服务器表明进行身份验证 MAIL FROM 命令中指定的地址是发件人地址 RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。 DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束 VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 HELP 查询服务器支持什么命令 NOOP 无操作,服务器应响应 OK RSET 重置会话,当前传输被取消 QUIT 结束会话

SMTP命令发邮件

> 注意:字符输入的时候不能使用“backspace删除键”,每个字符敲入后就已经传到服务器。如果输入错误,回车等待错误信息反馈,然后重新输入刚才修正后的命令。

红框内的为命令,含有DATA命令的大红框是整个正文的内容。正文的时候,subject命令结束后,下面空一行进行正文输入。正文输入完成后,回车,新行输入一个因为的“.”再回车,服务器识别为正文输入结束。服务器会反馈信息。

SMTP抓包分析

SMTP匿名发送

2232 首先是建立连接 2233 EHLO命令向服务器发起请求 2342 服务器向回复EHLO,表示请求完成 2343 MAIL FROM命令说明发件邮箱 2447 服务器回复命令执行成功 2448 TCPT TO命令声明收件邮箱地址 2559 服务器反馈命令执行成功 2560 DATA命令说明下面开始书写正文 2682 服务器表示开始接收书写的正文,以<CRLF>.<CRLF>结束 3097 QUIT命令通知服务器关闭传输通道。 3099 服务器反馈关闭信息。

SMTP账号密码认证发送

2633 首先是建立连接 2634 EHLO命令向服务器发起声明,需要身份验证。 2635 服务器的回复EHLO,250表示请求完成 2636 AUTH LOGIN用此命令表示身份验证开始 2637 服务器返回base64编码过的“user” 2638 发送USER,编码过的用户名 2639 服务器反馈base64编码过的“pass” 2640 发送PASS,编码过的密码 2641 认证成功 2642 MAIL FROM声明邮件来源的地址 2643 服务器返回发送器正常 2644 声明目的邮件地址是 2645 接受者OK 2646 DATA声明邮件的内容开始 2647 服务器返回信息,内容输入开始。354表示开始邮件,以<CRLF>.<CRLF>结束(即\r \n . \r \n) 2648~2651 都是邮件正文 2653 2686 2687 退出连接 2688 服务器反馈传输通道关闭的信息

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SMTP基本结构
  • SMTP命令
  • SMTP命令发邮件
  • SMTP抓包分析
    • SMTP账号密码认证发送
    相关产品与服务
    多因子身份认证
    多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档