first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
<?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',
];
}
}