BCC是否以不同于TOs的方式将PHP mail()发送到邮件列表?

我正在改进PHP邮件列表代码,它在循环中使用
mail()
,同时迭代所有订阅者。该脚本用于显示“超过30秒的最大执行时间”错误,我通过添加
set_time_limit(0);
解决了该错误。 现在没有错误,但发送100条消息大约需要7分钟。我有什么选择? 将在BCC帮助中向所有订阅者发送一条消息,还是“在幕后”是相同的?     
已邀请:
将所有人作为BCC发送将会快得多。代码执行速度更快,
mail()
只执行一次。 这是快速解决方案,但如上所述,大型BCC列表是通往垃圾邮件文件夹的安全之路。但是,使用
mail()
也是垃圾邮件的必然目的地。 如果你想真正改进它,请使用SourceForge中的PHPMailer并使用cron批量发送一次X封电子邮件(通过SMTP发送垃圾邮件)。 PHP文档声明:   注意:   值得注意的是,
mail()
功能不适合循环中的大量电子邮件。此功能为每封电子邮件打开和关闭SMTP套接字,效率不高。      要发送大量电子邮件,请参阅
» PEAR::Mail
» PEAR::Mail_Queue
包。     
通过在BCC shouold中指定它们来发送给所有订阅者的工作更快。虽然,虽然它可能是一些私人环境的好选择,但我不建议在公共网页/系统中这样做,因为许多人可能认为这种电子邮件是垃圾邮件。 一种选择是通过cron作业发送电子邮件。在这种情况下,只要最终发送所有电子邮件,发送电子邮件所需的时间并不重要。     
由于您只是在询问选项,因此以下是一些选项: 描述你的代码,看看它为什么慢。也许你可以解决一些效率问题。 依靠
mail()
函数通常是不可取的,特别是因为存在更好的替代方案,如swiftmail或Zend_mail。虽然这些对于小型邮件要求可能有点过分 它可能是服务器相关的问题吗?也许和您的服务器管理员联系。     
Cron Job更好主意。我用过这个,它有效...... 您的代码配置文件将帮助您找出问题所在。     
我建议通过BCC发送邮件,因为它会快得多。您的脚本只需要与SMTP服务器建立一个连接,此服务器将为您完成剩下的工作。 我还会看一下例如PHPMailer或PEAR :: Mail。 批量邮件的mail()方法的坏处是,它将为每个发送的电子邮件打开一个到SMTP服务器的新套接字。 一个好的邮件库将创建一个到SMTP服务器的套接字连接,然后发送所有电子邮件并在最后关闭它。 为了加快速度,您还可以查看SMTP服务器配置(如果可能)并尝试增加守护程序等。 您可能还需要考虑某些SMTP服务器具有可以发送的最大值。     

要回复问题请先登录注册