Serverload 使用自己的后缀和 mail() 与 phpmailer 和外部 smtp

Serverload using own postfix with mail() vs phpmailer with external smtp

我现在有一个较小的 VPS 服务器 ~20%-30% 平均负载 3 个网站。客户需要发送电子邮件进行订购、注册、发票和时事通讯。

我告诉我的客户,因为他喜欢连续发送时事通讯,他应该在域名托管服务商上使用外部邮件服务以减少服务器负载。

但我不确定,服务器负载是否有任何差异 - 如果邮件通过 phpmailer 移交给外部 SMTP 服务器与从自己的 postfix 发送有多少?

附带问题:如何解决超时 我有时会通过外部 SMTP 使用 phpmailer 发送邮件。 (php 尝试 - 抓住?)

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

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

如果您遇到间歇性的 SMTP 超时,我怀疑您的托管服务提供商或电子邮件主机可能正在限制您的电子邮件发送。正确的处理方法是 运行 一个本地邮件服务器(它将异步处理排队和重试,并且比 PHP 更有效),并通过 SMTP 向本地主机提交消息PHPMailer – PHPMailer 不是邮件服务器。一般性能建议可以在 the PHPMailer wiki about sending mail to lists.

中找到