/** * @inheritdoc */ protected function createTransport(array $config) { try { $this->_settings = Instance::ensure(Yii::$app->settings, Settings::className()); } catch (InvalidConfigException $ex) { Yii::error("Couldn't load settings component! Fallback to standard mailer"); $config['class'] = 'Swift_MailTransport'; return parent::createTransport($config); } if ($this->_settings->get('email', 'is_smtp', false)) { $config['class'] = 'Swift_SmtpTransport'; $config['host'] = $this->_settings->get('email', 'host', $config['host']); $config['port'] = $this->_settings->get('email', 'port', $config['port']); $config['username'] = $this->_settings->get('email', 'username', $config['username']); $config['password'] = $this->_settings->get('email', 'password', $config['password']); $config['encryption'] = $this->_settings->get('email', 'encryption', $config['encryption']); } else { $config['class'] = 'Swift_MailTransport'; } return parent::createTransport($config); }