_mailer === null) { if (isset($this->_config['smtp_security']) && in_array($this->_config['smtp_security'], ['ssl', 'tls'])) { $security = $this->_config['smtp_security']; } else { $security = null; } $transport = new \Swift_SmtpTransport($this->_config['smtp_host'], $this->_config['smtp_port'], $security); $transport->setUsername($this->_config['smtp_user']); $transport->setPassword($this->_config['smtp_pass']); $local_domain = $transport->getLocalDomain(); if (preg_match('/^\*\.(.+)$/', $local_domain, $matches)) { $transport->setLocalDomain($matches[1]); } $this->_mailer = new \Swift_Mailer($transport); } try { $errors = []; $result = $this->_mailer->send($message->message, $errors); } catch(\Exception $e) { $message->errors[] = $e->getMessage(); return false; } foreach ($errors as $error) { $message->errors[] = 'Failed to send to ' . $error; } return (bool)$result; } }