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);