2014-10-08 13 views
5

Aşağıdaki kod e-postaları varsayılan olarak gönderirken iyi çalışıyor ancak e-postayı göndermeden önce SwiftMailer taşıma seçeneklerini (ana bilgisayar, kullanıcı ve parola) geçersiz kılmak istiyorum ve seçenekler veri tabanı.Swiftmailer taşıma seçeneklerini dinamik olarak parameters.yml seçeneklerini kullanmak yerine geçersiz kılar

Bunu nasıl başaracağını bilen var mı?

Not

: Ben this post aracılığıyla gitti ama dinleyici şey yapmadı ve OP'ın çözüm bunu dökümü zaman benim $ nakil nesne görünmüyor $transport->getExtensionHandlers(); yöntemi vardır.

Besteci girişi

"symfony/swiftmailer-bundle": "2.1.*" 

/booking/app/config/parameters.yml

parameters: 
    mailer_transport: gmail 
    mailer_host:  smtp.gmail.com 
    mailer_user:  vizzzzz 
    mailer_password: 123123 

/booking/app/config/config.yml

swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 
    encryption: tls 

Kontrolör

$hostDb = $dbObject->getHost(); 
$userDb = $dbObject->getUser(); 
$passwordDb = $dbObject->getPassword(); 

// then I should override setting here so that the data coming from parameters.yml is overriden 

$order = // database object 

$message = \Swift_Message::newInstance() 
    ->setSubject($order->getSubject()) 
    ->setFrom($order->getFrom()) 
    ->setTo($order->getTo()) 
    ->setBody($content) 
; 
$this->mailer->send($message); 

cevap

İlgili konular