什么是 SMTP
SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。

什么是 ESMTP
ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。

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

连接 Winmail Server 使用 SMTP 命令发送邮件
例如:安装 Winmail 的邮件服务器IP是192.168.10.21 (蓝色字体内容由客户端输入,红色字体内容是服务返回的

telnet 192.168.10.21 25 --------------------- 使用 telnet 命令连接服务器 25 端口
Trying 192.168.10.21... ---------------------- 正在连接服务器 25 端口 
Connected to 192.168.10.21. -------------- 连接服务器 25 端口成功 
220 Winmail Mail Server ESMTP ready - 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改) 
helo domain.com ----------------- (必须带上域名)向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令 
250 Winmail Mail Server
ehlo domain.com ----------------- (必须带上域名)ESMTP 命令,发信需要认证。(也可以直接跳过HELO,用HELO命令表明身份后,跳到MAIL FROM....)
250-Winmail Mail Server
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE 20480000
250 8BITMIME
auth login --------------------------- 进行用户身份认证 
334 VXNlcm5hbWU6  
Y29zdGFAYW1heGl0Lm5ldA== -- BASE64 加密后的用户名 
334 UGFzc3dvcmQ6  
MTk4MjIxNA== --------------------- BASE64 加密后的密码 
235 auth successfully ------------- 身份认证成功 
(535 auth failure ------------------- 身份认证失败)
发到本系统中域名下的账户可跳过身份认证。(上篇文章讲过,关闭中继功能,就是服务器只接受发到特定邮件域或从特定IP地址发来的邮件,此时还不需认证)
mail from: <test1@domain.com> ------- mail from 地址 test1@domain.com
250 ok --------------------------------------- 命令执行成功 
rcpt to: <test2@domain.com> ---------- 递送给地址 test2@domain.com
250 ok --------------------------------------- 命令执行成功 
data ------------------------------------------ 数据传输初始化 
354 go ahead ------------------------------ 开始传输数据 
From: test1@domain.com
To: test2@domain.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail

Hi, test2 
This is a test mail, you don't reply it.

.
------------------------------------------------------------ 数据内容,包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输 
250 ok message accepted for delivery ------------ 命令执行成功 
quit ------------------------------------------------------- 结束会话 
221  Winmail Mail Server
Connection closed by foreign host .---------------- 断开连接

SMTP命令与ESMTP命令简介(附带命令通信)相关推荐

  1. Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略

    Ubuntu之make:make命令行工具的简介.安装.使用方法之详细攻略 目录 make命令行工具的简介 make命令行工具的安装 make命令行工具的使用方法 make命令行工具的简介 Ubunt ...

  2. linux终端命令make,Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略...

    Ubuntu之make:make命令行工具的简介.安装.使用方法之详细攻略 目录 make命令行工具的简介 make命令行工具的安装 make命令行工具的使用方法 make命令行工具的简介 Ubunt ...

  3. linux Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略

    Ubuntu之make:make命令行工具的简介.安装.使用方法之详细攻略 目录 make命令行工具的简介 make命令行工具的安装 make命令行工具的使用方法 make命令行工具的简介 Ubunt ...

  4. TF之TF flags:TF flags(命令行解析)的简介、安装、使用方法之详细攻略

    TF之TF flags:TF flags(命令行解析)的简介.安装.使用方法之详细攻略 目录 TF flags的简介 TF flags的安装 TF flags的使用方法 TF flags的简介 1.f ...

  5. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...

    Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...

  6. Linux 命令行上执行多个命令(分隔符简介使用)

    Linux 系统可以在一个命令行上执行多个命令,相应的命令行的分隔符简介及使用如下: ; 如果命令被分号(;)所分隔,那么命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令.示例如下: ls ...

  7. 快速上手Linux核心命令(一):核心命令简介

    Linux核心命令系列文章目录 快速上手Linux核心命令(一):核心命令简介 快速上手Linux核心命令(二):关机.重启 快速上手Linux核心命令(三):文件和目录操作命令 快速上手Linux核 ...

  8. Git 简介和命令行操作

    Git 简介 官网地址:https://git-scm.com/ 3Git 的优势  大部分操作在本地完成,不需要联网  完整性保证  尽可能添加数据而不是删除或修改数据  分支操作非常快捷流 ...

  9. 运维之DNS服务器Bind9配置解析和基础示例及附带命令

    0x03 Bind 配置解析 实例1.DNS主从区域传输介绍与配置 实例2.DNS区域传输限制 实例3.DNS部分二级域名解析 示例1.采用Bind建立一个A记录DNS服务器 示例2.采用Bind建立 ...

最新文章

  1. Centos 7下mysql的安装与配置
  2. nginx收到空包问题
  3. String是值传递还是引用传递
  4. C语言函数调用过程的汇编分析(停更)
  5. 年轻群体当道,哈弗F7如何赢得芳心?
  6. redis管道的使用
  7. Xtrareport 交叉报表
  8. SQLite指南(5) - PRAGMA命令用法(完整)
  9. 剑指offer面试题[10]-二进制中1的个数
  10. springboot项目执行controller方法时进入慢的问题
  11. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)
  12. android 串口一直打开_STM32之串口DMA接收不定长数据
  13. 深度学习:径向基网络(RBF)
  14. C/C++[codeup 1941]新版A+B
  15. nodejs 安装教程
  16. 6-5 统计二叉树叶子结点个数 (10 分)(C语言版)
  17. windows下端口映射(端口转发)
  18. 计算机高级培训教师感言,教师感言,句句经典
  19. 《淘宝技术这十年》 读书笔记
  20. Psim仿真_pi输出加限幅(疑惑)

热门文章

  1. Qt向MySQL中插入图片
  2. Data Import Handler - DIH相关命令
  3. 数据索引---Solr DIH
  4. Mybatis中模糊查询的SQL语句应该怎么写?
  5. php 代码中使用换行
  6. 一 ROS基础教程
  7. java实现在线预览word,excel,ppt文档
  8. Navicat Premium安装教程(激活)
  9. POJ 1417 True Liars(带权并查集+DP)
  10. 2019【王道】【天勤】考研系列图书勘误表