LogSentMessage.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Listeners;
  4. use Illuminate\Mail\Events\MessageSent;
  5. use Illuminate\Contracts\Queue\ShouldQueue;
  6. use Illuminate\Queue\InteractsWithQueue;
  7. use Illuminate\Support\Arr;
  8. use App\Models\EmailLog;
  9. class LogSentMessage
  10. {
  11. /**
  12. * Create the event listener.
  13. *
  14. * @return void
  15. */
  16. public function __construct()
  17. {
  18. //
  19. }
  20. /**
  21. * Handle the event.
  22. *
  23. * @param \Illuminate\Mail\Events\MessageSent $message
  24. * @return void
  25. */
  26. public function handle(MessageSent $event)
  27. {
  28. $userID = Arr::get($event->data, 'userID');
  29. $from = current($event->message->getFrom());
  30. $to = current($event->message->getTo());
  31. $sent = $event->message;
  32. EmailLog::create([
  33. 'user_id' => $userID,
  34. 'to_address' => $to->getAddress(), // 수신
  35. 'to_name' => $to->getName(), // 수신
  36. 'from_address' => $from->getAddress(), // 발신
  37. 'from_name' => $from->getName(), // 발신
  38. 'subject' => $sent->getSubject(), // 제목
  39. 'content' => $sent->getHtmlBody(), // 내용
  40. 'file_name' => null,
  41. 'file_size' => null
  42. ]);
  43. }
  44. }