engelsystem/src/Mail/Transport/LogTransport.php

51 lines
1.1 KiB
PHP

<?php
namespace Engelsystem\Mail\Transport;
use Psr\Log\LoggerInterface;
use Symfony\Component\Mailer\SentMessage;
use Symfony\Component\Mailer\Transport\AbstractTransport;
class LogTransport extends AbstractTransport
{
/** @var LoggerInterface */
protected $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
parent::__construct();
}
/**
* Send the message to log
*
* @param SentMessage $message
*/
protected function doSend(SentMessage $message): void
{
$recipients = [];
$messageRecipients = $message->getEnvelope()->getRecipients();
foreach ($messageRecipients as $recipient) {
$recipients[] = $recipient->toString();
}
$this->logger->debug(
'Mail: Send mail to "{recipients}":' . PHP_EOL . PHP_EOL . '{content}',
[
'recipients' => implode(', ', $recipients),
'content' => $message->toString(),
]
);
}
/**
* @return string
*/
public function __toString(): string
{
return 'log://';
}
}