Sendmail命令收发邮件

运维 系统运维
什么事SMTP命令?什么事ESMTP?如何用sendmail命令来收发邮件呢?

1、什么是 SMTP

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

2、什么是 ESMTP

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

3、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.0.1 (蓝色字体内容由客户端输入,红色字体内容是服务返回的)

  telnet 192.168.0.1 25 --------------------------------------- 使用telnet命令连接服务器 25 端口

  Trying 192.168.0.1... --------------------------------------- 正在连接服务器 25 端口

  Connected to 192.168.0.1. ----------------------------------- 连接服务器 25 端口成功

  220 Winmail Mail Server ESMTP ready ------------------------- 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改)

  helo domain.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令

  250 Winmail Mail Server

  ehlo domain.com ------------------------------------------------ ESMTP 命令,发信需要认证。

  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 ------------------------------------------ 身份认证失败)

  发到本系统中域名下的账户可跳过身份认证。

  mail from: ------------------------------ mail from 地址 test1@domain.com

  250 ok ----------------------------------------------------- 命令执行成功

  rcpt to: -------------------------------- 递送给地址 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 .------------------------- 断开连接

【编辑推荐】

  1. Sendmail的功能之别名设定与邮件备份
  2. Sendmail的功能之群发
  3. Sendmail的邮件目录
  4. Sendmail邮件收受流程(一)
  5. Sendmail邮件收受流程(二)
  6. Sendmail的功能之寄送外部邮件
  7. Sendmail配置笔记之配置篇
  8. Sendmail配置笔记之安装篇
责任编辑:zhaolei 来源: 网络转载
相关推荐

2010-07-26 13:16:11

telnet pop

2009-04-22 08:48:22

2009-12-16 13:54:46

路由器工作机制

2014-11-12 14:41:03

TurboMail

2014-01-16 15:18:09

盈世企业邮箱集成

2011-02-21 15:45:26

Sendmail启动慢原因

2011-01-21 09:49:18

sendmail目录

2010-05-12 17:20:39

2021-07-12 14:53:27

LinuxGmail电子邮件

2011-01-21 10:58:57

sendmail流程

2011-01-21 10:46:47

sendmail流程

2009-12-02 15:25:31

Linux邮件服务器

2011-01-21 13:21:21

sendmail安全

2011-02-21 16:21:49

Sendmail

2011-01-21 10:38:52

sendmail

2011-01-21 11:21:38

sendmail

2011-01-21 11:32:07

sendmail

2010-06-03 13:49:04

Sendmail 配置

2011-01-21 10:59:01

sendmail群发

2012-07-06 13:40:23

金山WPSWPS移动版
点赞
收藏

51CTO技术栈公众号