对许多电子邮件使用php mail VS Pear函数(但频率较慢)
我知道,对于大量电子邮件,建议使用Pear,但我想知道在我的案例中是否值得深入研究(我安装了它,但Pear有很多错误) 我需要向我的订户发送电子邮件(大约20K),但我的主机每小时只允许200封电子邮件。这没关系,因为我不需要每个人都同时收到电子邮件,我可以在一个月内发送所有这些邮件,我不着急 在这种情况下,有一个非常简单的循环,用mail()发送电子邮件,然后睡眠18秒(低于200封电子邮件/小时)可以吗。基本上,我想的只是做这样的事情对许多电子邮件使用php mail VS Pear函数(但频率较慢),php,email,pear,Php,Email,Pear,我知道,对于大量电子邮件,建议使用Pear,但我想知道在我的案例中是否值得深入研究(我安装了它,但Pear有很多错误) 我需要向我的订户发送电子邮件(大约20K),但我的主机每小时只允许200封电子邮件。这没关系,因为我不需要每个人都同时收到电子邮件,我可以在一个月内发送所有这些邮件,我不着急 在这种情况下,有一个非常简单的循环,用mail()发送电子邮件,然后睡眠18秒(低于200封电子邮件/小时)可以吗。基本上,我想的只是做这样的事情 for($i=0;$i<=count($recip
for($i=0;$i<=count($recipient);$i++)
{
mail($recipient[$i].....);
sleep(18);
}
for($i=0;$i如果您的服务器是基于linux的,那么您可能不会受到影响(请参阅)
虽然这听起来不是一个很好的解决方案,但也要考虑到您似乎在对所有收件人(20k)使用for循环
如果您不想使用PEAR,您可能希望尝试每小时设置一个cron作业,以某种方式(使用文本文件或数据库)记住上次向其发送电子邮件的用户,并发送下一批200个
在这种情况下,您可能希望每125分钟设置一次cronjon,以确保未达到限制。此外,在每次mail()之后使用sleep(1);
将节省CPU
查看性能注意事项。如果您的服务器是基于linux的,您可能不会受到影响(请参阅)
虽然这听起来不是一个很好的解决方案,但也要考虑到您似乎在对所有收件人(20k)使用for循环
如果您不想使用PEAR,您可能希望尝试每小时设置一个cron作业,以某种方式(使用文本文件或数据库)记住上次向其发送电子邮件的用户,并发送下一批200个
在这种情况下,您可能希望每125分钟设置一次cronjon,以确保未达到限制。此外,在每次mail()之后使用sleep(1);
将节省CPU
查看性能注意事项。首先,我不会说旧的mail()
的局限性
- 几乎所有东西的人工编码
- 错误处理能力差
- 无身份验证(虽然对您来说不是问题)
…与体积有关
第二,我从未使用过PEAR邮件,所以我不能谈论它的性能或开销,但您的用例恰恰来自一个低容量的电子邮件服务器。您不需要高性能来缓慢地完成任务,是吗
所以我敢说你使用了错误的标准来评估工具
我的建议是,对于极其简单和不重要的任务(订户通信不符合要求),您应该离开mail()
,并使用适当的第三方邮件库,而不一定是PEAR
特别是,专为满足您的要求而设计的功能:
如果您的SMTP服务器有适当的限制以限制
如果您发送电子邮件,那么您的代码需要知道这一点
速率限制。节流器插件使Swift Mailer以更快的速度运行
速率限制速度
许多共享主机都不会免费打开其SMTP服务器。
通常他们都有相应的政策(可能是为了阻止垃圾邮件发送者)
这只允许你每小时/天发送固定数量的电子邮件
Throttler插件支持两种速率限制模式和
每种情况下,您都需要进行数学运算,以计算出所需的值。
该插件可以根据每分钟的电子邮件数量或
每分钟传输的字节数
首先,我不会说好的mail()
的局限性
- 几乎所有东西的人工编码
- 错误处理能力差
- 无身份验证(虽然对您来说不是问题)
…与体积有关
第二,我从未使用过PEAR邮件,所以我不能谈论它的性能或开销,但您的用例恰恰来自一个低容量的电子邮件服务器。您不需要高性能来缓慢地完成任务,是吗
所以我敢说你使用了错误的标准来评估工具
我的建议是,对于极其简单和不重要的任务(订户通信不符合要求),您应该离开mail()
,并使用适当的第三方邮件库,而不一定是PEAR
特别是,专为满足您的要求而设计的功能:
如果您的SMTP服务器有适当的限制以限制
如果您发送电子邮件,那么您的代码需要知道这一点
速率限制。节流器插件使Swift Mailer以更快的速度运行
速率限制速度
许多共享主机都不会免费打开其SMTP服务器。
通常他们都有相应的政策(可能是为了阻止垃圾邮件发送者)
这只允许你每小时/天发送固定数量的电子邮件
Throttler插件支持两种速率限制模式和
每种情况下,您都需要进行数学运算,以计算出所需的值。
该插件可以根据每分钟的电子邮件数量或
每分钟传输的字节数
你看过PEAR的邮件队列包吗?你可以设置它在一个进程中发送X多封邮件,然后重新运行相同的脚本发送下X多封邮件
除了简洁的电子邮件,我当然不会使用本机邮件功能发送任何东西,也许是为了通知你应用程序中的异常情况。你看过使用PEAR的邮件队列包吗?你可以将其设置为在一个进程中发送X多封电子邮件,然后重新运行相同的脚本发送下X多封
我当然不会使用本机邮件功能发送任何内容,而只会发送简洁的电子邮件,也许是为了在应用程序中通知您异常情况。