На днях состоялся релиз версии 1.0.0 нового пакета для Laravel: laravel-newsletter. Он предоставляет в Ваше распоряжение очень простой способ взаимодействия с сервисами рассылки электронной почты.
Сейчас данный пакет поддерживает только MailChimp. Вскоре перечень поддерживаемых сервисов будет расширен.
После установки пакета добавить(убрать) e-mail из рассылки становится элементарно:
Newsletter::subscribe('my@mail.ru') Newsletter::unsubscribe('my@mail.ru')
Помимо рассмотренного метода, предоставляется еще ряд решений подобных задач, кроме того у Вас появляется возможность получить доступ к базовому MailChimp API.
В пакет будет добавлено больше функционала после нового релиза MailChimp API.
Установка laravel-newsletter
Для этого достаточно воспользоваться командой composer:
composer require spatie/laravel-newsletter
Также сразу необходимо подключить следующего провайдера в файле app.php из директории config:
'providers' => [ … 'Spatie\Newsletter\NewsletterServiceProvider', … ];
Для использования facade Вам необходимо также установить и его во все том же файле app.php:
'aliases' => [ … 'Newsletter' => 'Spatie\Newsletter\NewsletterFacade', ];
Для добавления конфигурационного файла в app/config/laravel-newsletter.php запустите:
php artisan vendor:publish --provider="Spatie\Newsletter\NewsletterServiceProvider"
Эта команда добавит файл laravel-newsletter.php в данную директорию со следующим содержанием:
return [ 'mailChimp' => [ /* * API ключ от MailChimp аккаунта. Ваш вы можете найти здесь: * https://us10.admin.mailchimp.com/account/api-key-popup/ */ 'apiKey' => env('MAILCHIMP_APIKEY'), /* * Здесь Вы можете задать свойства списков, которые Вы хотите * рассылать. */ 'lists' => [ /* * Этот ключ используется для идентификации этого списка. Он может быть * использован в различных методах предоставляемых данным пакетом. * * Вы можете установить его в любую строку, которую Вы хотите * и Вы можете добавить столько списков, сколько хотите. */ 'subscribers' => [ /* * MailChimp список id. Проверьте MailChimp файлы * если Вы не знаете как получить это значение: * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id */ 'id' => ' ', /* * Эти значения будут использованы при создании новой рассылки. */ 'fromEmail' => ' ', 'fromName' => ' ', 'toName' => ' ', ], ], ], ];
Использование
Для создания кампании следует воспользоваться кодом:
$subject = 'My letter'; $contents = '<h1>Wow</h1>'; Newsletter::createCampaign($subject, $contents);
Так мы создаем кампанию, но не отправляем ее.
Для подписки используется:
Newsletter::subscribe('my@mail.ru');
Чтобы отписать человека от рассылки используем:
Newsletter::unsubscribe('my@mail.ru');
Если в конфигурационном файле задано несколько списков необходимо передать их названия дополнительным параметром:
Newsletter::subscribe('my@mail.ru', 'mySecondList'); Newsletter::unsubscribe('my@mail.ru', 'mySecondList'); Newsletter::createCampaign($subject, $contents, 'mySecondList);
Для расширения функционала можно воспользоваться базовым API:
$api = Newsletter::getApi();
Тестируем
Для запуска теста воспользуйтесь:
vendor/bin/phpunit
Перевод статьи Manage newsletters in Laravel 5