--- a/Transport/MicrosoftGraphTransportFactory.php +++ b/Transport/MicrosoftGraphTransportFactory.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Mailer\Bridge\MicrosoftGraph\Transport; +use Symfony\Component\HttpClient\HttpClient; use Symfony\Component\Mailer\Bridge\MicrosoftGraph\TokenManager; use Symfony\Component\Mailer\Exception\IncompleteDsnException; use Symfony\Component\Mailer\Exception\InvalidArgumentException; @@ -52,9 +53,12 @@ throw new InvalidArgumentException('Graph endpoint needs to be provided without "http(s)://".'); } - $tokenManager = new TokenManager($graphEndpoint, $authEndpoint, $tenantId, $this->getUser($dsn), $this->getPassword($dsn), $this->client); + // Transport::getDefaultFactories() creates this factory without an HTTP + // client, which TokenManager requires. + $client = $this->client ?? HttpClient::create(); + $tokenManager = new TokenManager($graphEndpoint, $authEndpoint, $tenantId, $this->getUser($dsn), $this->getPassword($dsn), $client); - return new MicrosoftGraphApiTransport($graphEndpoint, $tokenManager, $dsn->getBooleanOption('noSave'), $this->client, $this->dispatcher, $this->logger); + return new MicrosoftGraphApiTransport($graphEndpoint, $tokenManager, $dsn->getBooleanOption('noSave'), $client, $this->dispatcher, $this->logger); } protected function getSupportedSchemes(): array