Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\EmailBundle\Mailer\Transport; | |
| use Symfony\Component\Mailer\Exception\UnsupportedSchemeException; | |
| use Symfony\Component\Mailer\Transport as SymfonyTransportFactory; | |
| use Symfony\Component\Mailer\Transport\Dsn; | |
| use Symfony\Component\Mailer\Transport\TransportInterface; | |
| use Symfony\Component\Mailer\Transport\Transports; | |
| class TransportFactory | |
| { | |
| public function __construct( | |
| private SymfonyTransportFactory $transportFactory | |
| ) { | |
| } | |
| /** | |
| * @param array<string, string> $dsns | |
| */ | |
| public function fromStrings(array $dsns): Transports | |
| { | |
| $transports = []; | |
| foreach ($dsns as $name => $dsn) { | |
| $transports[$name] = $this->fromString($dsn); | |
| } | |
| return new Transports($transports); | |
| } | |
| public function fromString(string $dsn): TransportInterface | |
| { | |
| try { | |
| return $this->transportFactory->fromString($dsn); | |
| } catch (UnsupportedSchemeException) { | |
| return new InvalidTransport(); | |
| } | |
| } | |
| public function fromDsnObject(Dsn $dsn): TransportInterface | |
| { | |
| return $this->transportFactory->fromDsnObject($dsn); | |
| } | |
| } | |