### 如何用 PHP 发电子邮件(2)

mail([接收方], [主题], [邮件主体], [头信息]);
你只需要简单的用列表中的下一个名字来替换[接收方].假设你已经有了一个电子邮件地址的数组:
$addresses = array("me@mycompany.com", "you@yourcompany.com", "someone@otherplace.com");
你所需要做的就是循环遍历这个数组,取得新地址而后发送这个邮件.
如果你在数据库中拥有一个电子邮件地址的列表,同样的原则也是适用的:循环遍历它们.
你已经懂得要领了.显然,同样的概念对你特定的数据库类型和表结构来说也是适用的,虽然代码会需要做一些改动.
人们在循环遍历一个地址列表的时候似乎都忽视了一点:如果你有多于 50 个地址要处理,你的脚本在完成以前很可能超时,因为 PHP 对每一个脚本的运行有一个缺省为 30 秒的时间限制.你可以修改这个时间限制但是这样做的时候要小心.要把这种修改限定在特定的脚本上,比方说遍历一个地址列表发送邮件的脚本.否则,你可能亲手将服务器的线程超载,然后你的计算机将崩溃,从此万劫不复.
要在脚本中设置时间限制,你可以使用 set_time_limit()函数.你可以设定时间限制,比如说 60 秒(set_time_limit(60)),或者你还可以让它一直运行直道它完成(set_time_limit(0)).
将这段代码加到你的脚本里,你的邮件地址遍历循环会很愉快的继续工作,直到邮件被发送给了列表中所有的地址.
发送 HTML 格式的电子邮件也是一种看起来难,做起来容易的事情.一但你学会了如何做这件事,你可能会因为自己曾经认为它很难而踢自己一脚.
我们需要对我们已经编写的邮件脚本做两个修改:
你的邮件应该是 HTML 格式的.
你必须添加 content-type 头信息.
这就是所有要做的事情.拥有一个能阅读 HTML 格式电子邮件客户端程序的接收方将看见他们的邮件以大的,粗体格式显示的信件.如果你发送的 HTML 格式邮件包括 image 置标,你一定要记住在 src 属性中使用完整的 URL,例如: <img src="http://www.yourdomain.com/images/image.gif">.
你还应该记住不是每一个人都能阅读 HTML 格式的电子邮件而且那些无法阅读这种格式的人只能看见 HTML 代码本身.这是另人讨厌的,所以最好三思而行.
结论
你可以用 PHP 以任何途径,方法或是可以想象到的任何形式来发送邮件.这个教程只是提供了基本的知识:配置你的服务器并发送简单的邮件.你还可以将附件和你用 mail()函数产生的电子邮件一道发送,修改一大堆不同的头信息,还有做任何电子邮件客户端程序和邮件列表发送程序能够做的事情.