我正在尝试根据Symfony2和Swiftmailer向大约17000人发送每周简报。我目前的问题是,我为控制台编写了一个命令。我可以通过“php app / console mail:send --newsletter 0 500”来调用它。最后两个数字是偏移量的附加变量和应该一次选择的收件人数量。我通常想要做的是使用一个cronjob,它调用此命令一次,在这种情况下,偏移量为0,数量为20.000,以获取所有收件人。这不起作用或至少邮件数量只是大。我的第一个测试是自己发送这些邮件,以便我可以看到发生了什么。脚本永远不会结束,直到达到500或更少。这是正常的吗?
以下是我的工作:
最后通过执行以下操作来刷新队列:
$spool = $this->mailer->getTransport()->getSpool();
$transport = $this->getContainer()->get('swiftmailer.transport.real');
$spool->flushQueue($transport);
关于我不确定的是我现在应该如何发送所有这些邮件。用cronjob调用shell脚本是错误的,通过更改偏移量来迭代此命令,这样一次只能生成500个邮件?或者这样做的正确方法是什么?或者我完全错了,这就是为什么我不能发送超过500的?以1000为例,控制台在我取消脚本之前不再做出反应。我已经尝试在后台启动它,但似乎脚本根本就没有工作......没有错误或类似的事情发生,只是没有反应。
编辑或者使用特定邮箱发送所有这些邮件更好,而不是使用带有mail() - 函数的PHP,这可能也是在SwiftMailer中使用的?
非常感谢你的帮助! 曼努埃尔
答案 0 :(得分:0)
我们有类似的情况,我们决定使用奏鸣曲通知捆绑+ RabbitMQ。您可以创建一个控制台命令来生成所有信息并将其发送到RabbitMQ,然后使用奏鸣曲包,您可以创建一个消耗管理队列以发送电子邮件组。
如果您在这里需要帮助,我们就是