'encrypted:array', 'enabled' => 'boolean', ]; public function buildTransport(): TransportInterface { if ($this->type === 'azure') { $config = array_merge($this->config, [ 'from_address' => $this->from_address, 'graph_api_version' => 'v1.0', 'timeout' => 30, 'save_to_sent_items' => false, ]); return new AzureTransport( new GraphClient(new TokenManager($config), $config), $config ); } $cfg = $this->config; $tls = ($cfg['encryption'] ?? 'tls') === 'ssl'; $transport = new EsmtpTransport($cfg['host'], (int) ($cfg['port'] ?? 587), $tls); if (!empty($cfg['username'])) { $transport->setUsername($cfg['username']); $transport->setPassword($cfg['password'] ?? ''); } return $transport; } }