SMTP 命令和定义
上一次修改主题: 2005-05-24
本主题包含有关下列主题的参考资料:
- 简单邮件传输协议 (SMTP) 命令
- 内部 SMTP 传输机制
- SMTP 事件接收器
- Microsoft® Exchange 常用的端口
下表列出了 Microsoft Windows® SMTP 服务 (SMTPSVC) 提供的 SMTP 命令。
SMTP 命令 | 命令功能 |
---|---|
HELO |
客户端为标识自己的身份而发送的命令(通常带域名) |
EHLO |
使服务器可以表明自己支持扩展简单邮件传输协议 (ESMTP) 命令。 |
MAIL FROM |
标识邮件的发件人;以 MAIL FROM: 的形式使用。 |
RCPT TO |
标识邮件的收件人;以 RCPT TO: 的形式使用。 |
TURN |
允许客户端和服务器交换角色,并在相反的方向发送邮件,而不必建立新的连接。 |
ATRN |
ATRN (Authenticated TURN) 命令可以选择将一个或多个域作为参数。如果该会话已通过身份验证,则 ATRN 命令一定会被拒绝。 |
SIZE |
提供一种使 SMTP 服务器可以指出所支持的最大邮件大小的机制。兼容的服务器必须提供大小范围,以指出可以接受的最大邮件大小。客户端发送的邮件不应大于服务器所指出的这一大小。 |
ETRN |
SMTP 的扩展。SMTP 服务器可以发送 ETRN 以请求另一台服务器发送它所拥有的任何电子邮件。 |
PIPELINING |
提供发送命令流(而无需在每个命令之后都等待响应)的能力。 |
CHUNKING |
替换 DATA 命令的 ESMTP 命令。该命令使 SMTP 主机不必持续地扫描数据的末尾,它发送带参数的 BDAT 命令,该参数包含邮件的总字节数。接收方服务器计算邮件的字节数,如果邮件大小等于 BDAT 命令发送的值时,则该服务器假定它收到了全部的邮件数据。 |
DATA |
客户端发送的、用于启动邮件内容传输的命令。 |
DSN |
启用传递状态通知的 ESMTP 命令。 |
RSET |
使整个邮件的处理无效,并重置缓冲区。 |
VRFY |
确认在邮件传递过程中可以使用邮箱;例如, |
HELP |
返回 SMTP 服务所支持的命令列表。 |
QUIT |
终止会话。 |
下表列出了 Exchange 使其可用于 SMTP 服务的扩展 SMTP 命令。
扩展的 SMTP 命令 | 命令功能 |
---|---|
X-EXPS GSSAPI |
Microsoft Exchange Server 2003 和 Exchange 2000 Server 服务器用来进行身份验证的方法。 |
X-EXPS=LOGIN |
Exchange 2000 和 Exchange 2003 服务器用来进行身份验证的方法。 |
X-EXCH50 |
在服务器到服务器通信的过程中,提供传播邮件属性的能力。 |
X-LINK2STATE |
在 Exchange 中添加链接状态路由支持。 |
可以使用事件接收器来扩展和修改 Microsoft Windows 2000 Server 和 Windows Server™ 2003 SMTP 服务的行为。Exchange 2003 要求运行 Windows 2000 或 Windows Server 2003 SMTP 服务,因为 Exchange 2003 中的大部分传输功能都是在此体系结构的基础上完成的。因此,在重新安装了 Internet 信息服务 (IIS) 或 Windows 2000 或 Windows Server 2003 SMTP 服务之后,还必须重新安装 Exchange。
SMTP 服务事件是在 SMTP 服务内部发生的某些活动,如 SMTP 命令的传输或到达,或者邮件提交到 SMTP 服务传输组件中。当发生特定的事件时,SMTP 服务使用事件发送器将事件通知给已注册的事件接收器。当通知事件接收器时,SMTP 服务将信息以组件对象模型 (COM) 对象引用的形式传递给接收器。
两种常规类别的 SMTP 服务事件是:
- 协议事件
当通过网络接收或传输了 SMTP 命令后,会发生协议事件。在下列情况下,会发生这些事件:- 客户端 SMTP 服务或邮件用户代理使用 SMTP 传输邮件,以便将邮件传递到本地服务。
- SMTP 服务将邮件中继到其他 SMTP 服务。
- 传输事件
如果 SMTP 服务接收邮件,并且该邮件是通过 SMTP 核心传输来传递的,则此时会发生传输事件。在通过传输来传递邮件的过程中,先对邮件进行分类(检查后归类),然后传递到本地存储位置,或者中继到另一个目的地(如果目的地不在本地)。
只能通过在 Microsoft Visual C++® 中编写组件对象模型 (COM) 对象来访问默认的 Windows 2000 和 Windows Server 2003 协议和传输事件。这些事件速度很快,不需要额外的处理,并且可以访问最低一级的邮件属性;但是,编写这些事件更为复杂。对于不要求高性能的较小任务,可以使用 CDO_OnArrival 事件,这一类事件可以使用 Microsoft Visual Basic® Scripting Edition (VBScript) 来编写。
有关编写上述某个事件接收器的详细信息,请下载 Platform SDK,或者参阅 MSDN® 开发人员程序文章 Microsoft Windows 2000 SMTP Service Events(英文)。
下表列出了 Exchange 常用的端口。有关需要在内部或外部打开哪些端口的详细信息,请参阅 Using Microsoft Exchange 2000 Front-End Servers(英文)。
协议 | Port | 描述 |
---|---|---|
SMTP |
TCP: 25 |
SMTP 服务使用 TCP 端口 25。 |
DNS |
TCP/UDP: 53 |
DNS 侦听端口 53。域控制器使用此端口。 |
LSA |
TCP: 691 |
Microsoft Exchange Routing Engine 服务 (RESvc) 在此端口上侦听路由链接状态信息。 |
LDAP |
TCP/UPD: 389 |
Microsoft Active Directory® 目录服务使用的轻型目录访问协议 (LDAP)、Active Directory 连接器以及 Microsoft Exchange Server 5.5 目录使用此端口。 |
LDAP/SSL |
TCP/UDP: 636 |
安全套接字层 (SSL) 上的 LDAP 使用此端口。 |
LDAP |
TCP/UDP: 379 |
站点复制服务 (SRS) 使用此端口。 |
LDAP |
TCP/UDP: 390 |
这是推荐的备用端口,当 Active Directory 域控制器上运行的是 Exchange Server 5.5 时,用于配置 Exchange Server 5.5 LDAP 协议。 |
LDAP |
TCP: 3268 |
全局编录。Windows 2000 和 Windows Server 2003 Active Directory 全局编录(域控制器“角色”)侦听 TCP 端口 3268。 |
LDAP/SSLPort |
TCP: 3269 |
SSL 上的全局编录。连接到全局编录服务器的 TCP 端口 3269 的应用程序可以传输并接收 SSL 加密数据。 |
IMAP4 |
TCP: 143 |
Internet 邮件访问协议 (IMAP) 使用此端口。 |
IMAP4/SSL |
TCP: 993 |
SSL 上的 IMAP4 使用此端口。 |
POP3 |
TCP: 110 |
邮局协议版本 3 (POP3) 使用此端口。 |
POP3/SSL |
TCP: 995 |
SSL 上的 POP3 使用此端口。 |
NNTP |
TCP: 119 |
网络新闻传输协议 (NNTP) 使用此端口。 |
NNTP/SSL |
TCP: 563 |
SSL 上的 NNTP 使用此端口。 |
HTTP |
TCP: 80 |
HTTP 使用此端口。 |
HTTP/SSL |
TCP: 443 |
SSL 上的 HTTP 使用此端口。 |