/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Mail/Transport.php
77 строк
2 KB
Raj Mohan R
AC-13253: Investigate alternative for laminas/laminas-mail as it is abandoned
07 фев 2025, 14:47
07 фев 2025, 14:47
87ffbb9
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\Mail; use Magento\Framework\App\ObjectManager; use Magento\Framework\Exception\MailException; use Magento\Framework\Phrase; use Symfony\Component\Mailer\Mailer; use Symfony\Component\Mailer\Transport\SendmailTransport; use Symfony\Component\Mailer\Exception\TransportExceptionInterface; use Psr\Log\LoggerInterface; /** * Mail transport */ class Transport implements TransportInterface { /** * @var SendmailTransport */ private SendmailTransport $symfonyTransport; /** * @var MessageInterface */ private EmailMessageInterface $message; /** * @var LoggerInterface|null */ private ?LoggerInterface $logger; /** * @param EmailMessageInterface $message * @param LoggerInterface|null $logger */ public function __construct(EmailMessageInterface $message, ?LoggerInterface $logger = null) { $this->symfonyTransport = new SendmailTransport(); $this->message = $message; $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class); } /** * @inheritdoc */ public function sendMessage(): void { try { $email = $this->message->getSymfonyMessage(); $mailer = new Mailer($this->symfonyTransport); $mailer->send($email); } catch (TransportExceptionInterface $transportException) { $this->logger->error('Transport error while sending email: ' . $transportException->getMessage()); throw new MailException( new Phrase('Transport error: Unable to send mail at this time.'), $transportException ); } catch (\Exception $e) { $this->logger->error($e); throw new MailException(new Phrase('Unable to send mail. Please try again later.'), $e); } } /** * @inheritdoc */ public function getMessage(): EmailMessageInterface { return $this->message; } }