SMTP 命令和定义

 

上一次修改主题: 2005-05-24

本主题包含有关下列主题的参考资料:

  • 简单邮件传输协议 (SMTP) 命令
  • 内部 SMTP 传输机制
  • SMTP 事件接收器
  • Microsoft® Exchange 常用的端口

SMTP 命令

下表列出了 Microsoft Windows® SMTP 服务 (SMTPSVC) 提供的 SMTP 命令。

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

确认在邮件传递过程中可以使用邮箱;例如,vrfy ted 确认在本地服务器上驻留 Ted 的邮箱。该命令在 Exchange 实现中默认关闭。

HELP

返回 SMTP 服务所支持的命令列表。

QUIT

终止会话。

下表列出了 Exchange 使其可用于 SMTP 服务的扩展 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 常用的端口

下表列出了 Exchange 常用的端口。有关需要在内部或外部打开哪些端口的详细信息,请参阅 Using Microsoft Exchange 2000 Front-End Servers(英文)。

Exchange 使用的端口

协议 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 使用此端口。