diff --git a/src/Symfony/Component/Mailer/Bridge/Mailchimp/Http/MandrillTransport.php b/src/Symfony/Component/Mailer/Bridge/Mailchimp/Http/MandrillTransport.php deleted file mode 100644 index 79201f7f8acb..000000000000 --- a/src/Symfony/Component/Mailer/Bridge/Mailchimp/Http/MandrillTransport.php +++ /dev/null @@ -1,71 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Mailer\Bridge\Mailchimp\Http; - -use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\Mailer\Exception\TransportException; -use Symfony\Component\Mailer\SentMessage; -use Symfony\Component\Mailer\SmtpEnvelope; -use Symfony\Component\Mailer\Transport\AbstractHttpTransport; -use Symfony\Component\Mime\Address; -use Symfony\Contracts\HttpClient\HttpClientInterface; - -/** - * @author Kevin Verschaeve - * - * @experimental in 4.3 - */ -class MandrillTransport extends AbstractHttpTransport -{ - private const ENDPOINT = 'https://mandrillapp.com/api/1.0/messages/send-raw.json'; - private $key; - - public function __construct(string $key, HttpClientInterface $client = null, EventDispatcherInterface $dispatcher = null, LoggerInterface $logger = null) - { - $this->key = $key; - - parent::__construct($client, $dispatcher, $logger); - } - - protected function doSend(SentMessage $message): void - { - $envelope = $message->getEnvelope(); - $response = $this->client->request('POST', self::ENDPOINT, [ - 'json' => [ - 'key' => $this->key, - 'to' => $this->getRecipients($envelope), - 'from_email' => $envelope->getSender()->getAddress(), - 'raw_message' => $message->toString(), - ], - ]); - - if (200 !== $response->getStatusCode()) { - $result = $response->toArray(false); - if ('error' === ($result['status'] ?? false)) { - throw new TransportException(sprintf('Unable to send an email: %s (code %s).', $result['message'], $result['code'])); - } - - throw new TransportException(sprintf('Unable to send an email (code %s).', $result['code'])); - } - } - - /** - * @return string[] - */ - private function getRecipients(SmtpEnvelope $envelope): array - { - return array_map(function (Address $recipient): string { - return $recipient->getAddress(); - }, $envelope->getRecipients()); - } -}