Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1224569
  • 博文数量: 275
  • 博客积分: 6445
  • 博客等级: 准将
  • 技术积分: 2863
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-04 23:22
文章分类

全部博文(275)

文章存档

2024年(4)

2023年(5)

2022年(3)

2021年(18)

2020年(9)

2019年(1)

2018年(13)

2017年(11)

2015年(9)

2013年(2)

2012年(4)

2011年(24)

2010年(114)

2009年(6)

2008年(29)

2007年(13)

2006年(10)

我的朋友

分类:

2008-01-03 11:37:24

SMTP 命令简介

什么是 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.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 cnu.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令
250 Winmail Mail Server
ehlo cnu.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 .------------------------- 断开连接

 
====================================================================================================================================
 
 
 
SMTP命令:

HELO fqdn  识别发送SMTP主机
MAIL FROM:  识别邮件发件人
RCPT TO: 识别邮件收信人信息
DATA    指示发送主机邮件数据发送已经准备好
RSET    中断当前邮件传输
VRFY string  允许发送主机在发送邮件前验证收件人的有效性
HELP    列出接收主机能支持的SMTP命令
QUIT    中断并关闭SMTP会话
TURN    触发收信服务器发送队列中的消息到发信服务器

ESMTP命令:

ATRN    只有会话是被验证的才运行
ETRN    指定邮件传递的远程主机
PIPELINING   允许SMTP命令批量发送而不需要得到回应
CHUNKING     允许更有效的发送大的MIME邮件
X-EXPS GSSAPI NTLM LOGIN  使用一种有效的认证机制,Kerberos和NTLM
X-EXPS=LOGIN  使用一种认证机制支持兼容Exchange Server5.5的NTLM
X-LINK2STATE  指定支持Exchange 2000连接状态命令
XEXCH50    用于在邮件中传输Exchang特定的内容
STARTTLS   在SMTP客户和服务器之间提供SSL连接

POP3命令:

USER name   提供用户名
PASS string 提供用户密码
STAT        提供邮箱状态
LIST        列举出邮件的项目
RETR msg    读取邮件
DELE msg    将邮件标记为删除
NOOP        不做任何事情,仅返回一个回应
RSET        中断当前操作,将标记为删除的邮件恢复
QUIT        退出POP3会话
 

--
Linux , Open Source World !
阅读(1157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~