1

我创建了一个通讯系统,我的问题是:考虑到我必须将邮件发送到数百个电子邮件地址,我应该如何编写代码?

我已经和我的主机管理员讨论过,他告诉我我应该一封一封地发送我的电子邮件,但每分钟不要超过 6 封。

我可以使用 $Timeout 属性吗?如果是这样,怎么做?

谢谢。

4

2 回答 2

3

如果您必须逐一发送邮件(而不是使用密件抄送),我会使用数据库队列来遵守每分钟仅发送 6 封邮件的限制(无论您最终将使用哪种解决方案来实际发送邮件)。

例如,您将有一个包含收件人、主题、邮件正文、lastsenddate、timessent 和状态的数据库表。

将所有要发送的邮件保存到数据库,然后设置一个每分钟运行一次的 cronjob,并检查队列中是否仍有邮件等待发送(例如 status = "unsend")。然后,您最多可以从队列中选择 6 封(或任何您的限制)邮件,将它们发送出去,将状态设置为“发送”(并增加“timessent”并将“lastsenddate”设置为实际时间,如果您喜欢)并等待下一个cronjob,直到所有邮件都发送完毕。

这样你有几个优点:

  1. 你可以尊重你的每分钟限制
  2. 您将所有邮件都保存在数据库中,以后可以与它们相关联(例如,找出您上周五发送了多少封邮件 - 以及哪些邮件,或者找出某个地址是否已被处理 - 以及处理时间和次数 -如果有人声称他从未收到过邮件/或太多)
  3. 通过跟踪邮件状态,您可以实现一个退回处理程序,例如,如果邮件返回,则将邮件状态设置为“退回”,因此您可以稍后重新发送邮件以到达返回“邮箱已满”-第一时间发消息
  4. 通过将您的邮件保存到数据库,您甚至可以通过添加数据库字段“开始时间”来设置“延迟邮件服务”,并使您的发送脚本尊重这个日期,这样您就可以在春天将您的圣诞邮件排队了 :)
于 2010-02-19T09:25:58.373 回答
0

Pear Mail 将允许您从 PHP 发送电子邮件到分配的人。

http://pear.php.net/package/Mail/

于 2010-02-19T01:14:06.813 回答