/laravel-dkim

Sign all outgoing emails in Laravel 9.x with a DKIM signature.

Primary LanguagePHPMIT LicenseMIT

GitHub release (latest by date) GitHub code size in bytes License

Laravel 9.x, 10.x and 11.x DKIM signature

Sign all outgoing emails in Laravel 9.x, 10.x and 11.x with a DKIM signature.

IMPORTANT! The package version that supports Laravel 10.x starts from 1.2.5

IMPORTANT! The package version that supports Laravel 11.x starts from 1.4

Installation and setup

  1. Get the latest version of the package via Composer:
composer require hostbrook/laravel-dkim
  1. In config/app.php comment the line with the original mail service provider (if exists) and add the line with the new mail service provider:
// Illuminate\Mail\MailServiceProvider::class,
HostBrook\LaravelDkim\DkimMailServiceProvider::class,
  1. Add your DKIM private key settings in /.env or in /config/mail.php. The priority of DKIM settings is from /.env file.

    3.1. The syntax, if you want to add DKIM private key settings in /.env file:

    DKIM_SELECTOR="selector1"
    DKIM_DOMAIN="domain.name"
    DKIM_PASSPHRASE=""
    DKIM_PRIVATE_KEY="/storage/app/dkim/private_key.txt"
    

    As an option, you can add the full RSA Private Key to the .env file, for example:

    DKIM_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEAq1SCAScet736Rr/f36OYUo8cRziq4v2uq6kNs5wzEaaqUAoh
    ...
    ENwDlqtgpM9D7YznrL6W9NH7fdSwmz2Ux0frY6weuBx/VSeJn1fb
    -----END RSA PRIVATE KEY-----"
    

    3.2. The syntax, if you want to add DKIM private key settings in /config/mail.php file:

    'dkim_selector' => 'selector1',
    'dkim_domain' => 'domain.name',
    'dkim_passphrase' => '', // leave empty if you didn’t protect the private key
    'dkim_private_key' => '/storage/app/dkim/private_key.txt',
    

    As an option, you can add the full RSA Private Key to the /config/mail.php file, for example:

    'dkim_private_key' => '-----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEAq1SCAScet736Rr/f36OYUo8cRziq4v2uq6kNs5wzEaaqUAoh
    ...
    ENwDlqtgpM9D7YznrL6W9NH7fdSwmz2Ux0frY6weuBx/VSeJn1fb
    -----END RSA PRIVATE KEY-----',
    

Notes and recommendations

  • No matter where you keep the RSA Private Key, in /.env file or in /config/mail.php file or in a text file, everything between two instances '-----BEGIN RSA PRIVATE KEY-----' and '-----END RSA PRIVATE KEY-----' must be right up to the start of the line!
  • It is not recommended to keep private key directly in the /config/mail.php file for security reasons especially if your project is not in the private repository.
  • If you would like to keep RSA Private key in a text file, the path to the text file must be relative to the project base path (like in the example above).

Upgrading

Whenever there is a new release, then from the command line in your project root:

composer update

Deleting package

Running the following command will remove the package from vendor folder:

composer remove hostbrook/laravel-dkim

DKIM info

Read more how to:

References