Laravel Sparkpost Driver

vemcogroup/laravel-sparkpost-driver image

Laravel Sparkpost Driver stats

Downloads
824.4K
Stars
38
Open Issues
1
Forks
14

View on GitHub →

SparkPost driver to use with Laravel 6.x|7.x|8.x

Laravel SparkPost Driver

Description

This package allows you to still use SparkPost as MailDriver in Laravel.

This package is inspired by: https://github.com/clarification/sparkpost-laravel-driver and updated with driver from Laravel 5.8.x

Version

Find the correct version to use in the table below:

Laravel version Version
6.x 2.x
7.x 3.x
8.x 4.x
9.x, 10.x 5.x

Installation

You can install the package via composer:

composer require vemcogroup/laravel-sparkpost-driver

If you're running an older version of Laravel, make sure you include the version number in your install. For example, for Laravel 8.x:

composer require vemcogroup/laravel-sparkpost-driver:4.x

The package will automatically register its service provider.

Usage

You will need to configure your Laravel installation before you can use Sparkpost.

1. Update config/services.php

You will need to add Sparkpost service to your config/services.php:

'sparkpost' => [
'secret' => env('SPARKPOST_SECRET')
],

You can configure additional options there, too:

Sparkpost API options

You can define specific [SparkPost options] (https://developers.sparkpost.com/api/transmissions/#header-request-body) like open_tracking, click_tracking, transactional

EU GDPR compliance

You are able to use the EU endpoint for Europe GDPR compliance by setting the endpoint option or the default will be used.

SparkPost (default): https://api.sparkpost.com/api/v1 SparkPost EU: https://api.eu.sparkpost.com/api/v1

Guzzle options

You are able to specify Guzzle options in the SparkPost config section guzzle.

Just include the additional configuration in your config/services.php.

'sparkpost' => [
'secret' => env('SPARKPOST_SECRET'),
 
// optional guzzle specific configuration
'guzzle' => [
'verify' => true,
'decode_content' => true,
...
],
'options' => [
// configure endpoint, if not default
'endpoint' => env('SPARKPOST_ENDPOINT'),
 
// optional Sparkpost API options go here
'return_path' => 'mail@bounces.domain.com',
'options' => [
'open_tracking' => false,
'click_tracking' => false,
'transactional' => true,
],
],
],

2. Set API Key

You will also need to add the SparkPost API Key to your environment (.env) file:

SPARKPOST_SECRET=__Your_key_here__

3. Set Mail Driver

You need to set your mail driver to SparkPost.

You can do this by setting the environment variable MAIL_MAILER in your .env file

MAIL_MAILER=sparkpost

Or, alternatively by changing the driver in config/mail.php:

'driver' => env('MAIL_MAILER', 'sparkpost'),

Note: If you are still using Laravel 5, MAIL_MAILER will be referenced as MAIL_DRIVER.

4. Update config/mail.php

Finally, you will also need to add the sparkpost driver to the config/mail.php mailer section.

'mailers' => [
...
'sparkpost' => [
'transport' => 'sparkpost'
],
...
],

Note: Laravel 5 already includes this configuration, so you don't need to do it if you're using Laravel 5

Helper functions

Delete supressions

sparkpost_delete_supression('test@example.com');

Validate single email address

sparkpost_check_email('test@example.com');

Mail Subaccounts

To send an email using a SparkPost mail subaccount, add the desired subaccount id to the message header before sending:

$subaccount_id = 1234;
$this->withSymfonyMessage(function ($message) use ($subaccount_id) { // 'this' is a mailable
$headers = $message->getHeaders();
$headers->addTextHeader('subaccount_id', $subaccount_id);
});
vemcogroup photo

Analytics company, based in Denmark. This repo is for giving back to the community and sharing our work.

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Vemcogroup Laravel Sparkpost Driver Related Articles

Creating Your Own Configuration in Laravel image

Creating Your Own Configuration in Laravel

Read article
Tinkerwell logo

Tinkerwell

The must-have code runner for Laravel developers. Tinker with AI, autocompletion and instant feedback on local and production environments.

Tinkerwell
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
The Certification of Competence for Laravel logo

The Certification of Competence for Laravel

A community-driven, proctored assessment across 4 levels designed to validate real-world Laravel knowledge, from Junior to mastery-level Artisan. Official Vue.js, Official Nuxt, Angular, React, JS certifications also available.

The Certification of Competence for Laravel
Securing Laravel logo

Securing Laravel

The essential security resource for Laravel devs, covering everything you need to keep your apps secure. Sign up to receive weekly security tips and monthly in depth articles, diving deep into security concepts you need to know!

Securing Laravel
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec