Laravel DKIM

A Laravel package, that allows signing emails with DKIM.

Installation

composer require simonschaufi/laravel-dkim

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.

After that, you should publish the config file with:

php artisan vendor:publish --provider="SimonSchaufi\LaravelDKIM\DKIMMailServiceProvider" --tag dkim-config

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.

I can't live without caffeine

Each cup of coffee helps me to be more productive and 
motivate me to maintain my open source projects.
Thank you for supporting me!