Files
mtdb_movie/common/Logging/Mail/OutgoingEmailLogSubscriber.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

52 lines
1.5 KiB
PHP
Executable File

<?php
namespace Common\Logging\Mail;
use Illuminate\Events\Dispatcher;
use Illuminate\Mail\Events\MessageSending;
use Illuminate\Mail\Events\MessageSent;
class OutgoingEmailLogSubscriber
{
public function handleSending(MessageSending $event): void
{
$headers = $event->message->getPreparedHeaders();
$logItem = OutgoingEmailLogItem::create([
'message_id' => $headers->get('Message-ID')->getBodyAsString(),
'from' => $headers->get('From')->getBodyAsString(),
'to' => $headers->get('To')->getBodyAsString(),
'subject' => $headers->get('Subject')->getBodyAsString(),
'mime' => utf8_encode($event->message->toString()),
'status' => 'not-sent',
]);
$event->message
->getHeaders()
->addTextHeader('X-BE-LOG-ID', $logItem->id);
}
public function handleSent(MessageSent $event): void
{
$logId = $event->message
->getHeaders()
->get('X-BE-LOG-ID')
->getBodyAsString();
OutgoingEmailLogItem::where('id', $logId)->update([
'status' => 'sent',
'message_id' => $event->sent
->getSymfonySentMessage()
->getMessageId(),
]);
}
public function subscribe(Dispatcher $events): array
{
return [
MessageSending::class => 'handleSending',
MessageSent::class => 'handleSent',
];
}
}