From e1450906cf796dd2cb331e184706de848358a77f Mon Sep 17 00:00:00 2001 From: Bas van der Louw Date: Tue, 6 Jan 2026 12:31:42 +0100 Subject: [PATCH] Remove Laminas\Mail dependency to be compatible with Magento 2.4.8 --- Plugin/TransportPlugin.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Plugin/TransportPlugin.php b/Plugin/TransportPlugin.php index 067632b..c30ea86 100755 --- a/Plugin/TransportPlugin.php +++ b/Plugin/TransportPlugin.php @@ -10,10 +10,10 @@ use Flowmailer\API\Flowmailer; use Flowmailer\API\Model\SubmitMessage; use Flowmailer\M2Connector\Registry\MessageData; -use Laminas\Mail\Message; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Encryption\EncryptorInterface; use Magento\Framework\Exception\MailException; +use Magento\Framework\Mail\MessageInterface; use Magento\Framework\Mail\TransportInterface; use Magento\Framework\Module\Manager; use Magento\Framework\Phrase; @@ -66,15 +66,13 @@ public function __construct( private function getSubmitMessages(TransportInterface $transport): \Generator { - $raw = $transport->getMessage()->getRawMessage(); - $rawb64 = base64_encode($raw); - $originalMessage = Message::fromString($raw); + $originalMessage = $transport->getMessage(); $from = ''; $fromName = ''; - if ($originalMessage->getFrom()->count() > 0) { - $from = $originalMessage->getFrom()->current()->getEmail(); - $fromName = $originalMessage->getFrom()->current()->getName(); + if ($originalMessage->getFrom() !== null && count($originalMessage->getFrom()) > 0) { + $from = current($originalMessage->getFrom())->getEmail(); + $fromName = current($originalMessage->getFrom())->getName(); } $recipients = $this->getRecipients($originalMessage); @@ -86,7 +84,7 @@ private function getSubmitMessages(TransportInterface $transport): \Generator ->setHeaderFromAddress($from) ->setHeaderFromName($fromName) ->setRecipientAddress(trim($recipient)) - ->setMimedata($rawb64) + ->setMimedata(base64_encode($originalMessage->getRawMessage())) ->setData( json_decode(json_encode($this->messageData->getTemplateVars())) ) @@ -135,17 +133,21 @@ private function submitMessages(\Generator $messages): void } } - private function getRecipients(Message $originalMessage): array + private function getRecipients(MessageInterface $originalMessage): array { $recipients = []; foreach ($originalMessage->getTo() as $recipient) { $recipients[] = $recipient->getEmail(); } - foreach ($originalMessage->getCc() as $recipient) { - $recipients[] = $recipient->getEmail(); + if ($originalMessage->getCc() !== null) { + foreach ($originalMessage->getCc() as $recipient) { + $recipients[] = $recipient->getEmail(); + } } - foreach ($originalMessage->getBcc() as $recipient) { - $recipients[] = $recipient->getEmail(); + if ($originalMessage->getBcc() !== null) { + foreach ($originalMessage->getBcc() as $recipient) { + $recipients[] = $recipient->getEmail(); + } } return $recipients;