我有一個關於在重定向之前使用SwiftMailer的問題。如果我允許控制器提出請求,那麼電子郵件發送正常。例如:在重定向之前使用SwiftMailer
function foo() {
// ...
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom($sender)
->setTo($recipient)
->setBody(strip_tags($html))
->addPart($html, 'text/html');
$result = $this->app['mailer']->send($message);
return '';
}
只要我返回一個非空的響應,上面的工作。
但是如果我做相同的,但像這樣一個重定向:
function foo() {
// ...
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom($sender)
->setTo($recipient)
->setBody(strip_tags($html))
->addPart($html, 'text/html');
$result = $this->app['mailer']->send($message);
simpleredirect($this->app['paths']['root']);
}
則不會發送消息。
注意:simpleredirect()
函數按照標準慣例終止腳本。
在這兩個示例中,$result
都會返回爲指定收件人的數量。因此,我只能假定郵件已排隊,並且在常規返回上運行某種調度,而在存在重定向的情況下則錯過了。
我有一種感覺,SwiftMailer spool
選項可能啓用。然而,對Bolt項目進行一些搜索後,我似乎無法找到任何設置。如果啓用了假脫機,那麼電子郵件將不會發送到重定向的終端階段(具有die
將避免)。
在'simpleredirect'之前放置'return' – 2014-10-31 12:30:33