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