Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mail()函数和可伸缩性_Php_Email_Scalability - Fatal编程技术网

PHP mail()函数和可伸缩性

PHP mail()函数和可伸缩性,php,email,scalability,Php,Email,Scalability,假设我的网站增长到每天需要发送成百上千封电子邮件……PHP mail()函数是否仍然足以解决这种情况,还是我必须实现一种替代解决方案?如果是这样的话,在这种情况下我应该寻求什么解决方案呢?数十万人并不容易。从技术上讲,这是可能的,应该没有什么可以阻止你,但不要指望这是一项容易的任务 “必须”发送该金额的站点必须考虑DKIM签名,这是一个耗时的过程 例如,假设一封电子邮件需要0.5秒才能签名、排队和处理。。这只是一个例子: 100000封电子邮件 =50000秒 =13.5小时 要想办法,你必须考

假设我的网站增长到每天需要发送成百上千封电子邮件……PHP mail()函数是否仍然足以解决这种情况,还是我必须实现一种替代解决方案?如果是这样的话,在这种情况下我应该寻求什么解决方案呢?

数十万人并不容易。从技术上讲,这是可能的,应该没有什么可以阻止你,但不要指望这是一项容易的任务

“必须”发送该金额的站点必须考虑DKIM签名,这是一个耗时的过程

例如,假设一封电子邮件需要0.5秒才能签名、排队和处理。。这只是一个例子:

100000封电子邮件 =50000秒 =13.5小时

要想办法,你必须考虑购买X个VPS服务器(最好在多个地理位置),并将每个定义为邮件中继。然后使用队列系统使用所有这些网关发送邮件

假设您有6个邮件中继服务器,上述10万封邮件将在2小时内发送

希望这能澄清一些想法

mail()
每次发送消息时都会打开和关闭套接字,所以不,这不是最好的主意,因为这些操作效率很低

更好的解决方案是使用PHP的;这是为发送电子邮件而设计的


作为PEAR邮件的扩展,还有一个将消息放入队列并在后台发送的功能。在您的情况下,这可能是一个更好的选择。

它可以工作,但速度会非常慢(比如需要几个小时)。你绝对应该研究一些用于处理这类事情的商业软件包

退房-


这很容易安装,相当便宜,而且他们保证你的邮件到达你的客户

这是一个性能问题,但我认为使用邮件函数或套接字连接也是一样的,我的意思是SMTP直接连接。忘记你听说过PHP的mail()函数。这相当于你在一元店买的螺丝刀。它会工作一两次,然后以惊人和可怕的方式失败。使用真正的邮件包,如PHPMailer或Swiftmailer。广告?如果不是,请在答案的页脚添加一个小的免责声明,以便人们知道您不是试图在这里赚钱的附属公司;)人们害怕点击你知道的;)不,不是广告。。。我以前也用过类似海报的东西。免责声明:我不为sendgrid.com工作,也不关心sendgrid.com,我只是觉得这是一项很好的服务。