getExtensionHandlers() public method

Get ESMTP extension handlers.
public getExtensionHandlers ( ) : Swift_Transport_EsmtpHandler[]
return Swift_Transport_EsmtpHandler[]
Ejemplo n.º 1
0
 public function __construct(\Swift_Transport_EsmtpTransport $transport, ConfigManager $config, ContainerInterface $container)
 {
     $mandrillApiKey = $config->get('atwix_mandrill.api_key');
     $mandrillApiUsername = $config->get('atwix_mandrill.api_username');
     if ($config->get('atwix_mandrill.enable_mandrill_integration') && !empty($mandrillApiKey) && !empty($mandrillApiUsername)) {
         $handlers = $transport->getExtensionHandlers();
         /** @var \Swift_Transport_Esmtp_AuthHandler $handler */
         $handler = reset($handlers);
         $transport->setHost($config->get('atwix_mandrill.smtp_host'));
         $transport->setPort($config->get('atwix_mandrill.smtp_port'));
         $handler->setPassword($mandrillApiKey);
         $handler->setUsername($mandrillApiUsername);
         \Swift_Mailer::__construct($transport);
     } else {
         $mailer = $container->get('mailer');
         parent::__construct($mailer, $container);
     }
 }
Ejemplo n.º 2
0
 /**
  * @param \Swift_Transport_EsmtpTransport $transport
  *
  * @return DirectMailer
  */
 protected function addXOAuth2Authenticator($transport)
 {
     $handlers = $transport->getExtensionHandlers();
     $handlers = is_array($handlers) ? $handlers : [];
     foreach ($handlers as $handler) {
         if ($handler instanceof \Swift_Transport_Esmtp_AuthHandler) {
             $authenticators = $handler->getAuthenticators();
             $isOAuth2Exist = false;
             foreach ($authenticators as $authenticator) {
                 if ($authenticator instanceof \Swift_Transport_Esmtp_Auth_XOAuth2Authenticator) {
                     $isOAuth2Exist = true;
                 }
             }
             if (!$isOAuth2Exist) {
                 $authenticators[] = new \Swift_Transport_Esmtp_Auth_XOAuth2Authenticator();
                 $handler->setAuthenticators($authenticators);
             }
         }
     }
     return $this;
 }