Created
April 4, 2018 19:23
-
-
Save notFloran/2959d3f6d06c33da3fce3358da206321 to your computer and use it in GitHub Desktop.
Log all emails sent with Swiftmailer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Swiftmailer; | |
use Psr\Log\LoggerInterface; | |
use Swift_Events_SendEvent; | |
use Swift_Events_SendListener; | |
class LoggerPlugin implements Swift_Events_SendListener | |
{ | |
/** | |
* @var LoggerInterface | |
*/ | |
protected $logger; | |
/** | |
* @var array | |
*/ | |
protected $alreadySend = []; | |
/** | |
* @param LoggerInterface $logger | |
*/ | |
public function __construct(LoggerInterface $logger) | |
{ | |
$this->logger = $logger; | |
} | |
/** | |
* @param Swift_Events_SendEvent $evt | |
*/ | |
public function beforeSendPerformed(Swift_Events_SendEvent $evt) | |
{ | |
} | |
/** | |
* @param Swift_Events_SendEvent $evt | |
*/ | |
public function sendPerformed(Swift_Events_SendEvent $evt) | |
{ | |
$messageId = $evt->getMessage()->getId(); | |
$context = [ | |
'message_id' => $messageId, | |
'subject' => $evt->getMessage()->getSubject(), | |
'from' => $evt->getMessage()->getFrom(), | |
'to' => $evt->getMessage()->getTo(), | |
]; | |
if ($evt->getTransport() instanceof \Swift_Transport_SpoolTransport) { | |
$this->logger->info('An email has been added to spool', $context); | |
} else { | |
$this->logger->info('An email has been sent', $context); | |
} | |
$this->alreadySend[$messageId] = true; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment