如何用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()函数产生的电子邮件一道发送,修改一大堆不同的头信息,还有做任何电子邮件客户端程序和邮件列表发送程序能够做的事情.