Php 使用Symfony2和Swiftmailer的高效时事通讯
我正试图向大约17000人发送一份基于Symfony2和Swiftmailer的每周通讯。我当前的问题是,我为控制台编写了一个命令。例如,我可以通过“php应用程序/控制台邮件:发送——时事通讯0500”来调用它。最后两个数字是偏移量和应立即选择的收件人数量的附加变量。我通常想做的是使用cronjob,它调用此命令一次,在本例中,偏移量为0,数量为20.000,以获取所有收件人。这不起作用,或者至少邮件量太大了。我的第一个测试是自己发送这些邮件,这样我就可以看到发生了什么。直到我达到500或更少,剧本才结束。这正常吗 以下是我的工作:Php 使用Symfony2和Swiftmailer的高效时事通讯,php,email,symfony,swiftmailer,Php,Email,Symfony,Swiftmailer,我正试图向大约17000人发送一份基于Symfony2和Swiftmailer的每周通讯。我当前的问题是,我为控制台编写了一个命令。例如,我可以通过“php应用程序/控制台邮件:发送——时事通讯0500”来调用它。最后两个数字是偏移量和应立即选择的收件人数量的附加变量。我通常想做的是使用cronjob,它调用此命令一次,在本例中,偏移量为0,数量为20.000,以获取所有收件人。这不起作用,或者至少邮件量太大了。我的第一个测试是自己发送这些邮件,这样我就可以看到发生了什么。直到我达到500或更少
$spool = $this->mailer->getTransport()->getSpool();
$transport = $this->getContainer()->get('swiftmailer.transport.real');
$spool->flushQueue($transport);
Manuel我们有一个类似的场景,我们决定使用sonata通知包+RabbitMQ。您可以创建一个控制台命令来生成所有信息并将其发送到RabbitMQ,然后使用sonata bundle,您可以创建一个Consumer命令来管理队列以发送电子邮件组。
如果您需要有关其配置的帮助,我们可以不同时执行包含500多封邮件的队列。当来自同一来源的邮件太多时,大多数邮件服务器都会拒绝传递邮件。我在Symfony 1.4中有一个项目,我们在十分钟内发送了500封邮件,效果很好。所以你在两次通话之间有延迟?但是你有1个cronjob或者很多cronjob,延迟10分钟?谢谢你,Imanol,我会尝试一下,然后返回到你的产品!