LaravelPackages.net
Acme Inc.
Toggle sidebar
dansmaculotte/laravel-newsletter

Manage newsletters in Laravel

2.693
0
v4.0.0
About dansmaculotte/laravel-newsletter

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

Manage newsletters in Laravel

Latest Version Total Downloads Build Status Quality Score Code Coverage

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.

Installation

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:

  • Mailchimp
composer require drewm/mailchimp-api
  • Mailjet
composer require mailjet/mailjet-apiv3-php

Usage

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, updating and unsubscribing

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 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]');

Getting subscriber info

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

Handling errors

If something went wrong you can get the last error with:

Newsletter::getLastError();

Need something else?

If you need more functionality you get an instance of the underlying Api with:

$api = Newsletter::getApi();

Mailjet notes

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.

Testing

Run the tests with:

vendor/bin/phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.

Star History Chart