<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Mailer\Transport; use Symfony\Component\Mailer\Exception\TransportException; use Symfony\Component\Mailer\Exception\UnsupportedSchemeException; use Symfony\Component\Mailer\Transport\Smtp\SmtpTransport; use Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream; /** * Factory that configures a transport (sendmail or SMTP) based on php.ini settings. * * @author Laurent VOULLEMIER <laurent.voullemier@gmail.com> */ final class NativeTransportFactory extends AbstractTransportFactory { public function create(Dsn $dsn): TransportInterface { if (!\in_array($dsn->getScheme(), $this->getSupportedSchemes(), true)) { throw new UnsupportedSchemeException($dsn, 'native', $this->getSupportedSchemes()); } if ($sendMailPath = ini_get('sendmail_path')) { return new SendmailTransport($sendMailPath, $this->dispatcher, $this->logger); } if ('\\' !== \DIRECTORY_SEPARATOR) { throw new TransportException('sendmail_path is not configured in php.ini.'); } // Only for windows hosts; at this point non-windows // host have already thrown an exception or returned a transport $host = ini_get('SMTP'); $port = (int) ini_get('smtp_port'); if (!$host || !$port) { throw new TransportException('smtp or smtp_port is not configured in php.ini.'); } $socketStream = new SocketStream(); $socketStream->setHost($host); $socketStream->setPort($port); if (465 !== $port) { $socketStream->disableTls(); } return new SmtpTransport($socketStream, $this->dispatcher, $this->logger); } protected function getSupportedSchemes(): array { return ['native']; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Smtp | Folder | 0755 |
|
|
AbstractApiTransport.php | File | 1.55 KB | 0644 |
|
AbstractHttpTransport.php | File | 2.12 KB | 0644 |
|
AbstractTransport.php | File | 3.9 KB | 0644 |
|
AbstractTransportFactory.php | File | 1.59 KB | 0644 |
|
Dsn.php | File | 2.45 KB | 0644 |
|
FailoverTransport.php | File | 971 B | 0644 |
|
NativeTransportFactory.php | File | 2 KB | 0644 |
|
NullTransport.php | File | 654 B | 0644 |
|
NullTransportFactory.php | File | 861 B | 0644 |
|
RoundRobinTransport.php | File | 3.61 KB | 0644 |
|
SendmailTransport.php | File | 4.2 KB | 0644 |
|
SendmailTransportFactory.php | File | 967 B | 0644 |
|
TransportFactoryInterface.php | File | 719 B | 0644 |
|
TransportInterface.php | File | 913 B | 0644 |
|
Transports.php | File | 2.27 KB | 0644 |
|