Skip to content

1.3.0

Choose a tag to compare

@jeffersongoncalves jeffersongoncalves released this 06 Apr 02:45

What's Changed

New Features

  • Pixel Tracking (Provider-Independent) — Track email opens and clicks without relying on email provider webhooks. Works with any mailer including plain SMTP.
    • Injects a 1x1 transparent GIF pixel for open tracking
    • Rewrites links for click tracking with 302 redirect
    • HMAC-SHA256 signed URLs to prevent forgery
    • Validates redirect URLs to block unsafe schemes (javascript:, data:, etc.)
    • Coexists with existing webhook-based tracking (events registered with provider=pixel)

New Configuration

LARAVEL_MAIL_PIXEL_OPEN_TRACKING=true
LARAVEL_MAIL_PIXEL_CLICK_TRACKING=true
LARAVEL_MAIL_PIXEL_SIGNING_KEY=  # optional, defaults to APP_KEY

New Files

  • Services/PixelTracker — Pixel injection, link rewriting, HMAC signing
  • Services/TrackingEventRecorder — Shared event recording service (refactored from AbstractWebhookHandler)
  • Http/Controllers/TrackingController — Serves GIF pixel and click redirects
  • Listeners/InjectTrackingPixel — MessageSending listener
  • routes/tracking.php — Pixel and click routes

Internal Changes

  • Added TrackingProvider::Pixel enum case
  • Refactored AbstractWebhookHandler to use shared TrackingEventRecorder service
  • Updated README, Boost guidelines, and Boost skill documentation

Full Changelog: 1.2.0...1.3.0