dansmaculotte/laravel-newsletter is a Laravel package for manage newsletters in laravel.
It currently has 0 GitHub stars and 2.693 downloads on Packagist (latest version v4.0.0).
Install it with composer require dansmaculotte/laravel-newsletter.
Discover more Laravel packages by dansmaculotte
or browse all Laravel packages to compare alternatives.
Last updated
This package is a fork from spatie/laravel-newsletter. It provides an easy way to integrate different email services with Laravel.
There are 2 drivers available:
There is also and log and null driver for testing and debug purpose.
You can install this package via composer using:
composer require dansmaculotte/laravel-newsletter
The package will automatically register itself.
To publish the config file to config/newsletter.php run:
php artisan vendor:publish --provider="DansMaCulotte\Newsletter\NewsletterServiceProvider"
This will publish a file newsletter.php in your config directory.
Finally, install the email service package needed:
composer require drewm/mailchimp-api
composer require mailjet/mailjet-apiv3-php
Configure your mail template driver and credentials in config/newsletter.php.
After you've installed the package and filled in the values in the config-file working with this package will be a breeze. All the following examples use the facade. Don't forget to import it at the top of your file.
use Newsletter;
Subscribing an email address can be done like this:
use Newsletter;
Newsletter::subscribe('[email protected]');
Add add email address to list but excluded from marketing emails
use Newsletter;
Newsletter::addMember('[email protected]');
Let's unsubscribe someone:
Newsletter::unsubscribe('[email protected]');
You can pass options as the second argument:
Newsletter::subscribe('[email protected]', ['FNAME' => 'Rince', 'LNAME' => 'Wind']);
You can subscribe someone to a specific list by using the third argument:
Newsletter::subscribe('[email protected]', ['FNAME' => 'Rince', 'LNAME' => 'Wind'], 'subscribers');
That third argument is the name of a list you configured in the config file.
You can also subscribe and/or update someone. The person will be subscribed or updated if he/she is already subscribed:
Newsletter::subscribeOrUpdate('[email protected]', ['FNAME' => 'Foo', 'lastname' => 'Bar']);
You can also unsubscribe someone from a specific list:
Newsletter::unsubscribe('[email protected]', 'subscribers');
Deleting is not the same as unsubscribing. Unlike unsubscribing, deleting a member will result in the loss of all history (add/opt-in/edits) as well as removing them from the list. In most cases you want to use unsubscribe instead of delete.
Here's how to perform a delete:
Newsletter::delete('[email protected]');
You can get information on a subscriber by using the getMember function:
Newsletter::getMember('[email protected]');
This will return an array with information on the subscriber. If there's no one subscribed with that
e-mail address the function will return false
There's also a convenience method to check if someone is already subscribed:
Newsletter::hasMember('[email protected]'); //returns a boolean
In addition to this you can also check if a user is subscribed to your list:
Newsletter::isSubscribed('[email protected]'); //returns a boolean
If something went wrong you can get the last error with:
Newsletter::getLastError();
If you need more functionality you get an instance of the underlying Api with:
$api = Newsletter::getApi();
Connection timeouts may occur when using mailjet, as described
here. You can
configure the value you want with configuration key
mailjet.connection_timeout, itself using environment variable
MJ_CONNECTION_TIMEOUT.
Run the tests with:
vendor/bin/phpunit
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.