2014-01-23 48 views
1

我有一個使用Symfony 2.4製作的Web應用程序,我使用SwiftMailer發送電子郵件。Swiftmailer不發送電子郵件(只在線軸上存儲)

我使用像郵件傳輸sendmail。

當用戶發送電子郵件時,我沒有收到此電子郵件。但如果我在命令行:

$php app/console swiftmailer:spool:send --env=prod 

我收到所有的電子郵件。

¿我該怎麼辦?

非常感謝!

---- ----編輯

我已刪除了所有引用我的配置文件到後臺,但問題仍然存在。

----編輯2 ----

Config.yml

mailer_transport: sendmail 
mailer_host: **** 
mailer_user: ***** 
mailer_password: **** 
+0

嘗試該文檔:http://symfony.com/doc/current/cookbook/email/spool.html – Lee

+0

謝謝,但我想刪除這個,我想當一個人給我發電子郵件,這不存儲在任何後臺:/ – user2794692

回答

2

從配置中刪除滑線(parameters.yml我相信嗎?我從來沒有用過的symfony,所以我解釋文檔)。

一旦您從配置中刪除了任何線索,它應該停止假脫機並立即發送。

話雖如此,假脫機的原因是它在請求執行結束時發送電子郵件,以便您沒有性能問題(減慢請求),可能是通過關閉功能。 ..這個函數不會執行的唯一原因,也就是你的電子郵件沒有被髮送,如果腳本提前結束(即死亡/退出或未捕獲的異常),所以你可能要考慮解決根本原因而不是修補周圍。

編輯:手動沖洗(在命令行腳本示例基金這個問題,我已經將它編輯成什麼,我覺得應該讓他爲你工作....)

// now manually flush the queue 
$container = $this->getContainer(); 
$mailer = $this->get('mailer'); 
$spool = $mailer->getTransport()->getSpool(); 
$transport = $container->get('swiftmailer.transport.real'); 

$spool->flushQueue($transport); 

http://symfony.com/doc/current/cookbook/console/sending_emails.html

+0

謝謝,但我已經刪除了所有關於我的配置文件中的spool的引用,並且電子郵件不會發送 – user2794692

+0

你可以檢查他們是否仍然通過runn假脫機通過命令行發送命令。在運行該命令之後,如果您收到一封電子郵件,它們仍然處於假脫機狀態,我們需要確定爲什麼 – Lee

+0

當我使用命令行時,我收到存儲在假脫機中的所有電子郵件。然後,如果另一個用戶給我發了一封電子郵件,這又存儲在spool中,我需要再次運行命令行。 – user2794692

相關問題