高效的通訊我想每週簡訊發送至17.000人,基於Symfony2中和Swiftmailer。我目前的問題是,我爲控制檯編寫了一個命令。我可以通過例如「php app/console mail:send --newsletter 0 500」來調用它。最後兩個數字是偏移量的附加變量以及應該一次選擇的收件人數量。我通常會做的是使用一個cronjob,一旦調用此命令,在這種情況下,與偏移量爲0和20.000的量來獲取所有收件人。這不起作用,或者至少郵件數量太大。我的第一個測試是自己發送這些郵件,以便我可以看到發生了什麼。劇本直到我達到500或更少時纔會結束。這是正常的嗎?與Symfony2中和Swiftmailer
這裏是我做的:
- 讓用戶從DB
- 找到我想在這個通訊在所有收件人發送
- 運行數據庫的文章,產生了$新消息message = \ Swift_Message :: newInstance()...並調用$ this-> mailer-> send($ message);
終於做這個刷新隊列:
$spool = $this->mailer->getTransport()->getSpool(); $transport = $this->getContainer()->get('swiftmailer.transport.real'); $spool->flushQueue($transport);
關於什麼我不知道是我現在應該把所有這些郵件。用cronjob調用一個shell腳本是不對的,通過改變偏移量來迭代這個命令,這樣一次只能生成500封郵件?或者什麼是正確的方法來做到這一點?或者我是否完全錯誤,這就是爲什麼我不能發送超過500?以1000爲例,控制檯在我取消腳本之前不會有任何反應。我已經嘗試在後臺啓動它,但似乎腳本根本不起作用......沒有錯誤或類似的事情發生,只是沒有反應。
編輯:或者是更好的使用特定的郵箱發送所有這些郵件,而不是使用PHP與郵件() - 這可能是也是在SwiftMailer使用的功能,?
非常感謝您的幫助! 曼努埃爾
其正常執行隊列中有超過500的郵件不是一次。大多數郵件服務器會拒絕傳送郵件,當來自相同源的郵件過多時。我在Symfony 1.4中有一個項目,我們在十分鐘內發送了500封郵件,這非常棒。 – falsch
因此,您的通話有延遲嗎?但是你有1個cronjob或者許多cronjob,延遲10分鐘? – Manuel