简单邮件传输协议(SMTP)是用于在商业网络和Internet上发送电子邮件的标准通信协议 。 SMTP最初是在二十世纪八十年代初开发的,并且仍然是全球使用最流行的协议之一。
电子邮件软件通常使用SMTP进行发送,并使用邮局协议3(POP3)或Internet消息访问协议(IMAP)协议来接收邮件。 尽管它的年龄,在主流使用中没有真正的SMTP替代方案。
SMTP如何工作
所有现代的电子邮件客户程序都支持SMTP 电子邮件客户端中维护的SMTP设置包括SMTP 服务器的IP地址 (以及用于接收电子邮件的POP或IMAP服务器的地址)。 基于Web的客户端将SMTP服务器的地址嵌入其配置中,而PC客户端则提供允许用户指定自己的服务器的SMTP设置。
物理SMTP服务器可能专门用于服务电子邮件通信,但通常与至少POP3以及其他代理服务器功能结合使用。
SMTP运行在TCP / IP之上,并使用TCP 端口号 25进行标准通信。 为了改进SMTP并帮助防止互联网上的垃圾邮件,标准组织还设计了TCP端口587来支持协议的某些方面。 一些Web电子邮件服务(如Gmail)使用SMTP的非官方TCP端口465。
SMTP命令
SMTP标准定义了一组命令 - 在请求信息时将客户端邮件发送到邮件服务器的特定类型邮件的名称。 最常用的命令是:
- HELO和EHLO--在客户端和服务器之间启动新协议会话的命令。 EHLO命令请求它们使用它支持的任何可选的SMTP扩展进行响应
- MAIL - 发起发送电子邮件的命令
- RCPT - 为正在准备的当前消息的收件人提供一个电子邮件地址的命令
- DATA - 指示电子邮件消息传输开始的命令。 该命令启动一系列一个或多个后续消息,每个消息包含一条消息。 序列中的最后一条消息是空的(仅包含句点(。)作为终止字符)来表示电子邮件的结尾。
- RSET - 在发送电子邮件的过程中(在发出MAIL命令之后),SMTP连接的任一端都可以在连接遇到错误时重置连接
- NOOP - 设计为一种ping的空(“无操作”)消息,以检查会话的另一端的响应性
- 退出 - 终止协议会话
这些命令的接收者以成功或失败代码编号进行答复。
SMTP问题
SMTP缺少内置的安全功能。 互联网垃圾邮件制造者过去曾经通过生成大量垃圾邮件并通过开放的SMTP服务器提供垃圾邮件来启用SNMP。 多年来,针对垃圾邮件的防护措施已有所改善,但并非万无一失。 此外,SMTP不会阻止垃圾邮件发送者设置(通过MAIL命令)假“发件人:”电子邮件地址。