Sendmail是一种邮件传输代理程序。多用途、支持多种协议的跨网络电子邮件发送,Sendmail是目前使用最为广泛的一种E-mail服务器。
Sendmail 是一种多用途、支持多种协议的跨网络电子邮件发送代理软件,由艾瑞克·欧曼所开发,于 1983 年随着 BSD 4.1c 首次发行。
sendmail 是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。
当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器, 并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。
显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。有许多的程序可以作为信件传输代理,但是 sendmail 是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,sendmail 的配置十分复杂,因此,也有人使用另外的一些工具,如 qmail、postfix 等等。
当 sendmail 程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过 DNS 服务实现的。例如一封邮件的目标地址是 hi#leixue.com,那么 sendmail 首先确定这个地址是用户名(hi)+机器名(leixue.com)的格式,然后,通过查询 DNS 来确定需要把信件投递给某个服务器。
概要
在 ARPANET 时期,艾瑞克·欧曼开发了 delivermail 软件,随附在 BSD 4.0 与 4.1 版。随着 TCP/IP 协议问世并且为 BSD 4.1c 所纳入支持,他以 delivermail 为基础另外分支出 Sendmail。
2001 年时的调查,互联网上的邮件服务器有 42%使用 Sendmail。但之后由于多次被发现重大的安全性漏洞,且其配置文件过于复杂造成较高的学习门槛等因素,导致市占率下滑。2012 年元月由 E-Soft 公司做的调查,仅 12.43%的邮件服务器使用 Sendmail。其市占率被 Exim、Postfix、Microsoft Exchange Server 等新兴的邮件发送代理软件所瓜分。
后续发展
下一世代的 Sendmail 最初命名为“Sendmail X”(先前名为“Sendmail 9”),但代码并不是分支自现有的 Sendmail 8.x 版,第一版已于 2005 年 10 月 30 日发行。授权许可与 Sendmail 8.x 相同。。
Sendmail X 的最后一版 smX-1.0.PreAlpha7.0,于 2006 年 5 月 20 日发行。之后由新的计划“MeTA1”所取代。