文章目录

  • SMTP协议
    • 1. 概念
    • 2. 基本流程
    • 3. 邮件路由的过程
    • 4. SMTP常用的命令
    • 5. SMTP常用的响应
    • 6. 使用SMTP的必要性
    • 7. SMTP和邮件格式的关系
    • 8. 浏览器发送邮件使用的协议

SMTP协议

1. 概念

​ SMTP是采用C/S模式,专用于电子邮件的发送,规定了发信人把邮件发送到收信人的电子邮箱的全过程,SMTP客户与SMTP服务器之间是如何交换信息的,规定了SMTP会话的过程。用户直接使用的是用于编写和发送的客户端软件,一般情况下SMTP服务器运行在远程站点上。客户/服务器之间的通信是通过TCP/IP协议进行的。

​ SMTP的命令和相应都是基于文本,以命令行为单位,换行符为GR/LF。响应信息一般只有一行,由一个三位数的代码开始,后面可附很简单的文字说明。

2. 基本流程

1)建立TCP连接

2)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;

3)客户端发送RCPT命令,以标识该电子邮件计划接收人,可以有多个RCPT行;

4)协商结束,发送邮件,用命令DATA发送;

5)以表示结束输入内容一起发送出去;

6)结束此次发送,用QUIT命令退出。

举列子

C: telent SMTP.163.com 25  //以telenet方式连接163邮件服务器
S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后的为欢迎信息
C: HELO SMTP.163.com //除了HELO所具有的功能外,EHLO主要用来查询服务器支持的扩充功能
S: 250-mail
S: 250-AUTH LOGIN PLAIN
S: 250-AUTH=LOGIN PLAIN
S: 250 8BITMIME //最后一个响应数字应答码之后跟的是一个空格,而不是'-'
C: AUTH LOGIN   //请求认证
S: 334 dxNlcm5hbWU6  //服务器的响应——经过base64编码了的“Username”=
C: Y29zdGFAYW1heGl0Lm5ldA==  //发送经过BASE64编码了的用户名
S: 334 UGFzc3dvcmQ6  //经过BASE64编码了的"Password:"=
C: MTk4MjIxNA==  //客户端发送的经过BASE64编码了的密码
S: 235 auth successfully  //认证成功
C: MAIL FROM: bripengandre@163.com  //发送者邮箱
S: 250 … .  //“…”代表省略了一些可读信息
C: RCPT TO: bripengandre@smail.hust.edu.cn //接收者邮箱
S: 250 … .    // “…”代表省略了一些可读信息
C: DATA //请求发送数据
S: 354 Enter mail, end with "." on a line by itself
C: Enjoy Protocol Studing
C: .
S: 250 Message sent
C: QUIT //退出连接
S: 221 Bye  

流程:

3. 邮件路由的过程

​ SMTP服务器是基于“域名服务DNS中计划收件人的域名来路由电子邮件”,SMTP服务器基于DNS中的MX记录来路由电子邮件,MX记录注册了域名和相关的SMTP中的主机,属于该域的电子邮件都应向该主机发送。

​ 若SMTP服务器mail.@qq.com收到信件要发送到mail.@126.com

1)Sendmail请求DNS给出主机sh.abc.com的CNAME记录,如有,假若CNAME到shmail.abc.com,则再次,请求shmail.abc.com的CNAME记录,直到没有为止;
2)假定被CNAME到shmail.abc.com,然后sendmail请求@abc.com域的DNS给出shmail.abc.com的MX记录;
   shmail    MX   5   shmail.abc.com
              10    shmail2.abc.com
3)Sendmail最后请求DNS给出shmail.abc.com的A记录,即IP地址,若返回值为1.2.3.4 ;
4)Sendmail与1.2.3.4连接,传送这封给shuser@sh.abc.com的信到1.2.3.4这台服务器的SMTP后台程序 。

4. SMTP常用的命令

SMTP命令不区分大小写,参数区分,常用命令如下:

1)HELO ---- 向服务器标识用户身份发送者能欺骗,说谎,但一般情况下服务器能检测到;

2)RCPT TO ---- 用来标志邮件接收者的地址,常用在MAIL FROM后,可以后多个RCPY TO接收地址;

3)DATA ---- 将之后的数据作为数据发送,以标志数据的结尾;

4)REAT ---- 重置会话,当前传输被取消;

5)NOOP ---- 要求服务器返回OK应答,一般用作测试;

6)QUIT ---- 结束会话;

7)VRFY ---- 验证指定的邮箱是否存在,由于安全方面原因,服务器大多禁止此命令;

8)EXPN ---- 验证给定的邮箱列表是否存在,由于安全方面的原因,服务器大多禁止此命令;

8)HELP ---- 查询服务器支持什么命令。

5. SMTP常用的响应

501——参数格式错误
502——命令不可实现
503——错误的命令序列
504——命令参数不可实现
211——系统状态或系统帮助响应
214——帮助信息
220——服务器就绪
221——服务关闭
421——服务器未就绪,关闭传输信道
250——要求的邮件操作完成
251——用户非本地,将转发向
450——要求的邮件操作未完成,邮箱不可用
550——要求的邮件操作未完成,邮箱不可用
451——放弃要求的操作,处理过程中出错
551——用户非本地,请尝试
452——系统存储不足,要求的操作未执行
552——过量的存储分配,要求的操作未执行
553——邮箱名不可用,要求的操作未执行
354——开始邮件输入,以“.”结束
554——操作失败

6. 使用SMTP的必要性

​ 一般的PC资源不够,处理能力不够,不可能全天候地连接在因特网上来收发邮件。所以使用SMTP服务器,可以让多个用户共用服务器,有效地降低了成本。

7. SMTP和邮件格式的关系

​ 可以用一个比较形象的例子来说明:甲与乙书信来往,甲通过邮局向乙发送信件,邮局见转交邮件可看成使用了SMTP协议,至于书信的格式则会因为地区习惯等的不同而不同,这个书信格式可看成是邮件格式的标准。

8. 浏览器发送邮件使用的协议

浏览器发送邮件的过程:
例如:bripengandre@126.com可通过登陆www.126.com来收发邮件 。
bripengandre@126.com在www.126.com提供的邮件页面上填写的相应信息(如发信人邮箱、收信人邮箱等),通过http协议被提交给126服务器;126服务器根据这些信息组装一封符合邮件规范的邮件(就像用户代理一样);然后smtp.126.com通过SMTP协议将这封邮件发送到接收端邮件服务器。
由此可知,浏览器发送邮件只是用户代理的功能直接放到邮件服务器上去做了,至于邮件服务器见发送邮件仍然采用的是SMTP协议。

范的邮件(就像用户代理一样);然后smtp.126.com通过SMTP协议将这封邮件发送到接收端邮件服务器。
由此可知,浏览器发送邮件只是用户代理的功能直接放到邮件服务器上去做了,至于邮件服务器见发送邮件仍然采用的是SMTP协议。

邮件基础之 -- SMTP协议相关推荐

  1. 邮件服务器之SMTP协议分析

    第1章. SMTP概述 1.1. SMTP在邮件通信过程中的位置 SMTP,即简单邮件传送协议,所对应RFC文档为RFC821.同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的 ...

  2. SMTP邮件格式、SMTP 协议,SMTP的MIME写法,SMTP发送HTML邮件

    转载:http://blog.sina.com.cn/s/blog_759444350100vx8u.html MIME邮件格式 在RFC 2822文档中定义了简单的ASCII编码的Email的邮件格 ...

  3. SMTP 协议邮件发送工具封装

    文章目录 1. 前言 1.1 说明 1.2 建议 1.3 源码 2. 发件人邮箱开通smtp 服务 2.1 为什么开通smtp 服务 2.2 开启服务的步骤 2.3 普通邮箱开启服务图文 3. 工具类 ...

  4. 【计算机网络】应用层 : 电子邮件 ( SMTP 协议 | MIME 协议 | POP3 协议 | IMAP 协议 | 基于万维网的电子邮件 )

    文章目录 一.电子邮件信息格式★ 二.电子邮件系统 组成 结构 ★ 三.SMTP 协议 ( 简单邮件传送协议 ) ★ 四.SMTP 协议 连接建立流程 五.SMTP 协议 邮件发送 流程 六.SMTP ...

  5. php邮件代码c语言,C语言实现邮件发送功能(SMTP)源码

    [实例简介]C 语言编写的邮件发送器是SMTP协议的源代码和EXE执行程序均在里面使用VS2013开发环境生成,填写对应参数即可成功进行邮件发送,不用配置邮件服务器,只需一个支持SMTP协议的邮箱账号 ...

  6. 电子邮件之SMTP协议详解

    电子邮件 文章目录 电子邮件 一.电子邮件概述 二.电子邮件系统概述 三.发送协议SMTP基本工作原理 四.电子邮件的信息格式 五.多用途因特网邮件扩展MIME 六.邮件读取协议 一.电子邮件概述 电 ...

  7. html协议属于哪层,smtp协议在什么层

    SMTP:简单邮件传输协议 SMTP:Simple Mail Transfer Protocol) SMTP 是一种提供可靠且有效电子邮件传输的协议. SMTP 是建模在 FTP 文件传输服务上的一种 ...

  8. 协议基础:SMTP:使用Telnet学习SMTP协议

    SMTP是简单邮件传输协议(Simple Mail Transfer Protocol)的缩写,这篇文章将通过如何使用telnet命令发生邮件结合RFC文档来学习一下SMTP协议的基础知识. OSI模 ...

  9. 使用java语言基于SMTP协议手写邮件客户端

    使用java语言基于SMTP协议手写邮件客户端 1. 说明 电子邮件是互联网上常见的应用,他是互联网早期的产品,直至今日依然受到广大用户的喜爱(在中国可能因为文化背景不同,电子邮件只在办公的时候常用) ...

最新文章

  1. LeetCode实战:整数反转
  2. minitab怎么算西格玛水平_西格玛和西格玛水平
  3. 关于生sql中的空值
  4. python获取文件读写权限_Python 查看文件的读写权限方法
  5. Nignx出现failed (3: The system cannot find the path specified)问题
  6. Bootstrap列表组禁用和活动状态
  7. 菜鸟CEO万霖:双11包裹量将继续增长 已建立更高效的物流枢纽
  8. 你真的输不起了,别再孩子气了
  9. 机器学习【系列】之第六章随机森林模型
  10. 用Python下载风云四号高清卫星云图
  11. 重启iis的命令是什么?三种简单的重启方式
  12. input标签详解,用户注册表单
  13. 游戏主机系统,破旧老电脑秒变高性能儿时复古游戏主机
  14. android studio无法连接小米手机问题解决
  15. 手把手教你如何 远程控制另一台电脑 保姆教程
  16. POI标注分类数据/POI数据分析/商业分析制图
  17. Excel去掉函数错误值#VALUE!的方法
  18. 推荐六款图片素材网站
  19. 创意十足的多媒体沙盘展示,为企业品牌宣传效果锦上添花
  20. Create和OnCreate的关系

热门文章

  1. REXROTH力士乐比例溢流阀DBET6X/200G24K4V
  2. python微博自动投票_python自动投票(新手学python)
  3. 手机APP自动化 Appium教程
  4. 从电工测量仪表的分类开始学习常用电工测量工具
  5. DSP应用技术(第二章)
  6. Ubuntu 截图快捷键 gnome-screenshot 使用
  7. 双色球彩票预测可视化(python)
  8. 一分钟自我介绍 建议
  9. DeBreath 去除呼吸声vst插件中文文档(翻译)
  10. esxi能直通的显卡型号_没有驱动,显卡不动:amd显卡驱动安装教程