我开发了一个PHP代码,它从列表中提取电子邮件地址并一个接一个地发送电子邮件。我正在使用PHPMailer库通过我的Gmail帐户发送。
我的意图是一次发送大约5000封电子邮件。 (别担心,它不是垃圾邮件。这些是关于即将发生的事件的通知。)但是,到目前为止,我的最佳输出是133封电子邮件,代码运行5分钟。这很慢。我想我可以用set_time_limit()
延长执行时间。但是,完成所有电子邮件的发送还需要大约3个小时。
关于我的代码的几点澄清:
1.我使用SMTPKeepAlive = true;
保持SMTP连接的活动状态
2.电子邮件的设置以及连接都在循环之外。在循环内部我只提取电子邮件ID,将其传递给AddAddress并发送。
3.我想坚持自己的代码,而不是使用邮件列表网站/软件。
是否可以优化流程并在几分钟内完成?
答案 0 :(得分:0)
对于这个数量的电子邮件,我会使用像SendGrid这样的交易邮件服务或类似的东西,因为当您想通过该服务发送电子邮件(或一封电子邮件到多个地址)时,您只需要创建一个API请求。与总是连接到smtp服务器相比,这只需要几毫秒,大约500毫秒。
注意:我没有以任何方式使用SendGrid,我只是喜欢他们的产品(并发现他们的服务与您的相似)。 (他们每月有12,000封免费电子邮件计划)。
注2:他们还有一个php api