一个发送e-mail的脚本也许是你能够在web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.php中有一个叫做mail()的函数,它只需要知道接收方的地址和信件主体就可以发送邮件,但是要让mail()按你的意思运行你还需要解决一些棘手的问题.
要使mail()能够运行,你必须有一个smtp服务器以便php能够连接上去.不管这个服务器对邮件程序多么重要,大多数人对它如何运转没有一星半点的概念.在本教程中,我们将揭示smtp的秘密并解决一些使用php发送邮件的常见问题.而本文中的另一些主题将包括循环遍历一个地址列表的方法以及同时以文本和html格式向接收者发送一个邮件的方法.
smtp是简单邮件传输协议(simple mail transfer protocol)的缩写,而一个smtp服务器是一台运行这种协议并发出邮件的计算机.运行这种协议实际上指的是运行诸如sendmail和qmail的程序--如果你使用的是一台非windows计算机的话.在windows平台上,作为windows nt service pack一部分或是内建于windows 2000内部的smtp服务程序就是典型的这种程序.
我并不是说smtp软件包就只有那些,但是它们是最普通的.如果你的web站点使用了互联网服务提供者的主机软件包(internet service provider's virtual hosting package)的一部分,那么smtp服务程序就应该已经在这台计算机上安装了.如果你是一台位于isp或是室内的计算机的系统管理员,那么你很有可能已经在这台计算机上安装了某种smtp软件,用来处理从web服务器发送邮件的过程.
但是,如果你是一个个人用户并只有一个开发用的web服务程序运行在你的个人电脑上,你可能没有在自己的机器上运行smtp软件.下面是一个非常简单但是准确的拇指定律:如果你是一个windows用户而从没有看见smtp服务器这样的字眼,那么你就没有运行这个程序.如果你确实没有,那么你有两种选择:安装,配置,和维护一个smtp服务程序(如果你不知道那是怎么一回事的话就不推荐你使用这种方法)或是使用一个现存的smtp服务器.