Download the PHP package apps-inteligentes/email-tracking without Composer
On this page you can find all versions of the php package apps-inteligentes/email-tracking. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download apps-inteligentes/email-tracking
More information about apps-inteligentes/email-tracking
Files in apps-inteligentes/email-tracking
Package email-tracking
Short Description Track e-mail delivery with Mailgun Hooks. All data are stored in the database on Email model
License MIT
Homepage https://github.com/henryavila/email-tracking
Informations about the package email-tracking
E-mail tracking with Laravel and Mailgun
Abandon Laravel Nova
Since I've abandoned Laravel Nova in favor of Filament, This package will no longer add support to Laravel Nova. The exact content of this package with Laravel Nova has been moved to a new package https://packagist.org/packages/henryavila/laravel-nova-email-tracking If you are using Laravel Nova, please use this new package instead.
Version 6.2.0 upgrade
A new migration has been added to track email events. If you are updating from a previous version, make sure to publish and run migrations again:
--
Mailgun configuration
On mailgun interface, add a webhook
to the url <APP_URL>/webhooks/mailgun
Installation
Setup Laravel Mail with mailgun at https://laravel.com/docs/master/mail#mailgun-driver
Define the environments variable in your .env
file
Install the package via composer:
Publish and run the migrations with:
Publish the config file with:
This is the contents of the published config file:
Configuration
On all models that can send e-mail, add the trait ModelWithEmailsSenderTrait
For Laravel 10, add this conde in EventServiceProvider.php
file
For Laravel 11, Add this code inside the boot()
method of AppServiceProvider.php
At this point, all e-mail sent from app, will be logged on the app, but the sender will not be saved
Save the Email sender
To be able to track the e-mail sender, you must create a custom Mailable
or Notification
.
Mailable
When creating a new Mailable, it must extend the Class with HenryAvila\EmailTracking\Mail\TrackableMail
Also, You must change the constructor and content function.
This is the default mail class:
Change the class to this:
To send the Mailable, just pass the model in the mailable constructor
Notification
When creating a notification, all you have to do is to change the toMail()
method.
Replace the default code:
with this code:
To send the notification
Webhook Events
When a Mailgun webhook is successfully processed, the EmailWebhookProcessed
event is automatically dispatched. This event contains the specific email event that was processed.
Event Structure
Implementing the Listener
To implement the listener, you can use the EmailWebhookProcessed
event. This event contains the specific email event that was processed.
Available Event Types
The EmailWebhookProcessed event wraps one of the following event types:
- AcceptedEmailEvent: Email accepted for delivery
- ClickedEmailEvent: Link clicked in email
- OpenedEmailEvent: Email opened
- DeliveredEmailEvent: Email successfully delivered
- PermanentFailureEmailEvent: Permanent delivery failure
- TemporaryFailureEmailEvent: Temporary delivery failure
- SpamComplaintsEmailEvent: Spam complaint
- UnsubscribeEmailEvent: Unsubscribe request
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Henry Ávila
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of email-tracking with dependencies
spatie/laravel-package-tools Version ^1.9.2
illuminate/contracts Version ^9.0|^10.0|^11.0|^12.0
spatie/laravel-permission Version ^3.0|^4.0|^5.0|^6.0