Serverload使用自己的postfix与mail()对比phpmailer与外部smtp

时间:2019-04-15 07:08:15

标签: php performance email phpmailer postfix-mta

此刻,我获得了一个较小的VPS服务器,平均加载3个网站,平均占20%-30%。客户需要发送电子邮件以获取订单,注册,发票和新闻通讯。

我告诉我的客户,是因为他喜欢连续发送时事通讯,因此他应该在域托管服务商处接受外部邮件服务以减轻服务器负载。

但是我不确定,服务器负载是否有任何差异-如果邮件通过phpmailer传递到外部SMTP服务器与从自己的postfix传递相比有多大?

侧面问题:如何解决超时问题有时我会通过phpmailer通过外部SMTP发送邮件。 (php try-catch?)

1 个答案:

答案 0 :(得分:1)

加载实际上应该不是问题。您甚至可以在低功率服务器上每秒发送数百条消息。也就是说,您的其他假设是正确的;您可以通过将服务转移到其他地方(包括其他电子邮件服务)来减轻负载。

就PHPMailer而言,无论它是本地的还是远程的,它运行的代码都是相同的。使用SMTP可能比mail()消耗更少的资源,因为无论如何,mail()函数所做的只是打开到本地主机的同步SMTP连接。通常,您应该避免使用mail();它比SMTP到本地主机的速度慢且安全性低。

如果您遇到间歇性SMTP超时,我怀疑您的托管服务提供商或电子邮件主机可能正在限制您的电子邮件发送。解决该问题的正确方法是运行本地邮件服务器(它将异步处理排队和重试,并且比PHP效率更高),然后通过SMTP将邮件从SMTP从SMTPMail提交到本地主机– PHPMailer不是邮件服务器。常规性能建议可在the PHPMailer wiki about sending mail to lists中找到。