2012-10-30 56 views
3

我需要2種郵件:後臺郵件,並直接發送郵件

  1. 後臺郵件(大宗郵件)
  2. 直郵(如寄存器郵件)

現在我有2個服務:

<service id="spool_mailer" class="%swiftmailer.class%"> 
    <argument type="service" id="swiftmailer.transport"/> 
</service> 

<service id="mailer" class="%swiftmailer.class%"> 
    <argument type="service" id="swiftmailer.transport.real"/> 
</service> 

但其所需的「swiftmailer.transport.real」會忽略「swiftmailer.delivery_address」,並在開發ENV。我嘗試了其他的傳輸方式,但他們會將郵件緩存:Configure SwiftMailer

如何解決此問題?

+0

適合我......你確定你正在測試這個嗎? –

+0

我糾正了:在您的設置中,如果您只加載「郵件程序」服務,則不會使用delivery_address。如果您加載「spool_mailer」服務(但仍使用郵件服務發送消息),則將使用delivery_address *。 –

回答

0

我認爲你的解決方案,雖然聰明,但是很不好,並且依靠繞過Swiftmailer的一些內部功能。繞過發送電子郵件到假脫機程序的部分代碼似乎也繞過了設置收貨地址的部分代碼。如果沒有閱讀源代碼來清楚瞭解還有哪些事情沒有發生,我不會這樣做。

我想支持的方法是使用多個郵件程序如下所述:http://symfony.com/doc/current/reference/configuration/swiftmailer.html#using-multiple-mailers

這將允許您定義兩個不同的郵件程序,其中一個可以被配置爲使用卷軸。 (你也可以有兩個郵件程序,每個郵件程序都有自己的獨立線軸)