jeffersongoncalves/laravel-mail
Complete email management for Laravel: logging, translated database templates with versioning, webhook delivery tracking for five providers, pixel open/click tracking, suppression lists, inline CSS, statistics, and retries.
Campaign reports: with laravel-mail.campaigns.enabled, mail tags (tag() / Envelope tags) are stored on the log (publish and run the new add_tags_to_mail_logs_table migration). CampaignReport and php artisan mail:campaign [tag] report sent, delivered, bounced, complained, distinct opens and clicks, open / click / click-to-open rates and the most clicked links per campaign.
Fix: template text bodies are set on the message directly instead of being passed to text() as a view name.
provider=pixel)LARAVEL_MAIL_PIXEL_OPEN_TRACKING=true
LARAVEL_MAIL_PIXEL_CLICK_TRACKING=true
LARAVEL_MAIL_PIXEL_SIGNING_KEY= # optional, defaults to APP_KEY
Services/PixelTracker — Pixel injection, link rewriting, HMAC signingServices/TrackingEventRecorder — Shared event recording service (refactored from AbstractWebhookHandler)Http/Controllers/TrackingController — Serves GIF pixel and click redirectsListeners/InjectTrackingPixel — MessageSending listenerroutes/tracking.php — Pixel and click routesTrackingProvider::Pixel enum caseAbstractWebhookHandler to use shared TrackingEventRecorder serviceFull Changelog: https://github.com/jeffersongoncalves/laravel-mail/compare/1.2.0...1.3.0
provider_event_idTemplateMailable automatically link to the templateList-Unsubscribe and List-Unsubscribe-Postmail:send-test Command — Send test emails using templates via CLImail:templates Command — List all templates in a tablemail:stats Command — Show email statistics in the terminalMailTemplate now uses HasTranslations traitVerifyWebhookSignature middleware (validation already in handlers)Tracking Events — Laravel events dispatched on webhook processing: MailDelivered, MailBounced, MailComplained, MailOpened, MailClicked, MailDeferred. Listen to react to delivery status changes (disable accounts on bounce, alert on complaints, etc.)
Suppression List — Automatically suppress email addresses that hard bounce or receive spam complaints. Suppressed addresses are blocked from future sends. Includes mail:unsuppress command for manual management.
Statistics — MailStats facade with query helpers: sent(), delivered(), bounced(), complained(), opened(), clicked(), deliveryRate(), bounceRate(), dailyStats().
Template Preview Action — Render templates with example data without sending: PreviewTemplateAction::execute($template, $data, $locale).
Browser Preview — View sent emails and templates in the browser via signed URLs. Access via $mailLog->preview_url and $template->preview_url.
Notification Channel — TemplateMailChannel + TemplateNotificationMailable to send database templates via Laravel Notifications.
Retry Failed Emails — RetryFailedMailAction with max attempts + mail:retry command. Hard bounces are automatically skipped.
Laravel Boost Integration — resources/boost/ with guidelines and development skill for AI-assisted development.
Initial release of Laravel Mail — complete email management for Laravel.
MessageSent eventmail:prune artisan command with configurable retentionHow can I help you explore Laravel packages today?