How to Track Email Status (Delivered, Opened, Bounced) When Sending Emails Using Laravel

I’m currently developing an email campaign portal using Laravel, and I’m looking for ways to track the status of emails sent through my platform. I’ve successfully implemented pixel tracking for email opens by embedding a single-pixel image in the email body. However, I’m now exploring options to track other email statuses, such as delivery, clicks, and bounces.

Is there a way to achieve this natively within Laravel, without relying on third-party email services like SendGrid or Mailgun? I’m interested in learning about techniques or best practices for tracking these email statuses efficiently within my Laravel application.

I am new to Laravel development so any insights or suggestions would be greatly appreciated!

My Code Snippet for email open tracking

public function generateTrackingId(int $id): string
    {
        $randomString = Str::random();
        $time = time();
        $trackingId = Hash::make($id . $randomString . $time);

        return str_replace(['$', '/', '.'], '', $trackingId);
    }

public function generateUrl(string $trackingId): string
    {
        $baseUrl = URL::to('/');
        $trackingUrl = $baseUrl . '/track/' . $trackingId;
        return $trackingUrl;
    }