This package will allow you to capture any mail send out either using Mail or Notification features in Laravel.
You can install the package via composer:
composer require cleaniquecoders/mailhistory
You can publish and run the migrations with:
php artisan vendor:publish --tag="mailhistory-migrations"
php artisan migrate
If you need to configure more, do publish the config file and update the config file as neccessary.
php artisan vendor:publish --tag="mailhistory-config"
We need to configure two parts - Mail & Notification.
All mails are required to use mail metadata trait.
<?php
namespace App\Mail;
use CleaniqueCoders\MailHistory\Concerns\InteractsWithMailMetadata;
class DefaultMail extends Mailable
{
use InteractsWithMailMetadata, SerializesModels;
And in your mail constructor, do call the following method:
public function __construct()
{
$this->configureMetadataHash();
}
With this setup, we can track which email has been sent or still sending.
Do configure you mail prior to this step. At the moment, it only works with Mailable, not Mail Message class.
For notifications classes, you will need to add the following trait:
use CleaniqueCoders\MailHistory\Concerns\InteractsWithMail;
class DefaultNotification extends Notification
{
use InteractsWithMail;
Then in your notification constructor, you need to initialise the mail object.
public function __construct()
{
$this->setMail(
new \App\Mails\DefaultMail
);
}
And update the toMail()
as following:
/**
* Get the mail representation of the notification.
*/
public function toMail(object $notifiable): Mailable
{
return $this->getMail()->to($notifiable->email);
}
If you need to clean up your mail history table, you can run:
php artisan mailhistory:clear
If you need to test the mail or notification:
php artisan mailhistory:test [email protected] --mail
php artisan mailhistory:test [email protected] --notification
Do take note, for mail testing, you need a user record that have the email address as we are using Notifiable trait.
You may run the test using specified queue:
php artisan mailhistory:test [email protected] --mail --queue=mail
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.