A Laravel package, that allows signing emails with DKIM.
composer require simonschaufi/laravel-dkim
After that, you should publish the config file with:
php artisan vendor:publish --provider="SimonSchaufi\LaravelDKIM\DKIMMailServiceProvider"
The providers array in config/app.php
has an entry with Illuminate\Mail\MailServiceProvider::class
. Comment this
line out and add your own service provider entry (in the "Package Service Providers" section):
/*
* Package Service Providers...
*/
SimonSchaufi\LaravelDKIM\DKIMMailServiceProvider::class,
The DKIMMailServiceProvider extends the MailServiceProvider and overwrites a method that we need for our own behavior.
Next we need to create a private and public key pair for signing and verifying the email.
There are many tools available to generate the necessary keys but here is one which is easy to use:
https://tools.socketlabs.com/dkim/generator
Enter your domain and in the "selector" field enter default
.
After you have generated the keys and added the public key to your dns record, here is a tool to validate it:
https://www.mail-tester.com/spf-dkim-check
Finally, store the private key for example in storage/app/dkim/private_key.txt
and configure your settings in .env
:
DKIM_DOMAIN=example.com
If you placed the private key somewhere else, you need to set the full absolute path in the environment variable or adjust the storage path in the config file.
If you find this package helpful, please consider a donation! Links are on top of this file.