ええと...実際には、メーラー サービスをバンドル内に取得して、必要な方法で構成できます。トランスポート インスタンスを取得し、そのハンドラーを構成し、そこmailer
に注入を構成して新しいインスタンスを作成するだけです。transport
$transport = $this->get('swiftmailer.transport');
$transport->setHost('smtp.gmail.com');
$transport->setEncryption('ssl');
$handlers = $transport->getExtensionHandlers();
$handler = $handlers[0];
$handler->setUsername('');
$handler->setPassword('');
$handler->setAuthMode('login');
$mailer = \Swift_Mailer::newInstance($transport);
gmail
トランスポートを使用することを想定して、上記のいくつかのプロパティを設定しました。このvendor/symfony/swiftmailer-bundle/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php
トランスポートの簡単なチェックがあります。
//...
} elseif ('gmail' === $config['transport']) {
$config['encryption'] = 'ssl';
$config['auth_mode'] = 'login';
$config['host'] = 'smtp.gmail.com';
$transport = 'smtp';
} else {
//...
spool
コンテナを取得して構成を試みることができます(mailer
サービスを取得する前に行う必要があります)。
$this->getContainer()
->setParameter('swiftmailer.spool.file.path, '%kernel.cache_dir%/swiftmailer/spool');
ただし、このファイルパスはデフォルトで使用する必要があります。スプーリングを有効にするだけです。
$this->getContainer()->setParameter('swiftmailer.spool.enabled', true);
antiflood
同様の方法で構成できます。
$this->getContainer()->setParameter('swiftmailer.plugin.antiflood.threshold', 99);
$this->getContainer()->setParameter('swiftmailer.plugin.antiflood.sleep', 0);
それが役に立てば幸い