Laravel 5.7 sends emails using Swift Mailer.
By default, all sent emails will have the Message-ID
header with the domain swift.generated
(eg. Message-ID: <90b9835f38bb441bea134d3ac815dd6f@swift.generated>
).
I would like to change the domain swift.generated
to for example my-domain.com
.
How can I change this for all emails?
'domain' => 'yourdomain.com',
php artisan make:listener -e 'Illuminate\Mail\Events\MessageSending' MessageSendingListener
<?php
/**
* Set the domain part in the message-id generated by Swift Mailer
*/
namespace App\Listeners;
use Illuminate\Mail\Events\MessageSending;
use Swift_Mime_IdGenerator;
class MessageSendingListener
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param MessageSending $event
* @return void
*/
public function handle(MessageSending $event)
{
$event->message->setId((new Swift_Mime_IdGenerator(config('mail.domain')))->generateId());
}
}
protected $listen = [
// [...]
\Illuminate\Mail\Events\MessageSending::class => [
\App\Listeners\MessageSendingListener::class,
],
];
That's it, enjoy! :)