使用PHPMailer在SMTP邮件中进行时间优化

时间:2016-12-08 15:48:42

标签: php smtp phpmailer

我开发了一个PHP代码,它从列表中提取电子邮件地址并一个接一个地发送电子邮件。我正在使用PHPMailer库通过我的Gmail帐户发送。

我的意图是一次发送大约5000封电子邮件。 (别担心,它不是垃圾邮件。这些是关于即将发生的事件的通知。)但是,到目前为止,我的最佳输出是133封电子邮件,代码运行5分钟。这很慢。我想我可以用set_time_limit()延长执行时间。但是,完成所有电子邮件的发送还需要大约3个小时。

关于我的代码的几点澄清:  1.我使用SMTPKeepAlive = true;保持SMTP连接的活动状态  2.电子邮件的设置以及连接都在循环之外。在循环内部我只提取电子邮件ID,将其传递给AddAddress并发送。  3.我想坚持自己的代码,而不是使用邮件列表网站/软件。

是否可以优化流程并在几分钟内完成?

1 个答案:

答案 0 :(得分:0)

对于这个数量的电子邮件,我会使用像SendGrid这样的交易邮件服务或类似的东西,因为当您想通过该服务发送电子邮件(或一封电子邮件到多个地址)时,您只需要创建一个API请求。与总是连接到smtp服务器相比,这只需要几毫秒,大约500毫秒。

注意:我没有以任何方式使用SendGrid,我只是喜欢他们的产品(并发现他们的服务与您的相似)。 (他们每月有12,000封免费电子邮件计划)。

注2:他们还有一个php api