2010-02-12 234 views
0

在我的应用程序中,我们有一个冗长的脚本,将多个记录写入数据库,将多个文件从服务器上的一个位置复制到另一个位置,然后发送多个电子邮件。PHP发送电子邮件

我们注意到间歇性的过程会超时。经过一些调试,我们注意到超时通常发生在发送邮件时,我们使用PHP邮件()及其托管的Windows服务器。主持人说在这个脚本中CPU的使用似乎会激增,这是否合理?我不认为邮件密集?

我在想,排队邮件可能会更好,我们不能让Pear运行,所以不能使用mail_queue,但我想我们只是将电子邮件数据写入数据库,然后设置一个cron /计划任务来运行脚本每晚处理表格的第一条记录,在它发送电子邮件后删除记录,然后重新运行自己,从而避免超时?也许这是一个繁琐的解决方案..任何反馈将不胜感激。

+0

在Linux上,你有一个脚本超时参数,你可以改变,我不知道关于Windows。如果你不能,你可以让脚本发送一定数量的邮件(例如x,10),这将会在timeout linit之下,然后自己调用它来发送下一封邮件no? – Julien 2010-02-12 03:12:52

+0

你可以改变脚本的超时时间,但队列是一个更灵活的解决方案。不要只发送一个,drupal每次运行cron时都会发送一些消息,数量将取决于服务器过载,连接,邮件的大小等。在发送X电子邮件之前测试脚本不会死。 – useless 2010-02-12 03:21:51

回答

1

我建议使用SwiftMailer发送您的所有电子邮件。您可以使用它发送批次。

http://www.swiftmailer.org

如果你有电子邮件的地段派,一个排队系统是最好的。