NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Campaigns for Laravel

Kanály doručenia

Každého príjemcu spracuje job z campaigns.process-recipient-job. Balík obsahuje dva — oba bežia vo fronte a oba implementujú Contracts\ProcessesCampaignRecipient:

  • Jobs\SendCampaignEmail (predvolený) — odošle obsah kampane ako HTML e-mail.
  • Jobs\SendCampaignNotification — doručuje cez notifikačný systém Laravelu, takže tá istá kampaň môže ísť e-mailom, cez SMS aj push.

E-mail

SendCampaignEmail odošle obsah presne tak, ako je uložený — rovnaké HTML telo pre každého príjemcu, bez šablón pre jednotlivcov — s predmetom a odosielateľom kampane, adresované na meno a adresu príjemcu. Kampaň bez odosielateľa ponechá globálnu adresu a meno mail.from mailera. Úspech označí príjemcu ako spracovaného; každá výnimka sa zachytí a zaznamená ako neúspešný príjemca aj so správou. Pri zrušenej dávke job skončí bez odoslania.

Notifikácie Laravelu

Prepnite job, nastavte campaigns.notification na podtriedu CampaignNotification a určte kanál smerovania:

// config/campaigns.php
'process-recipient-job' => \RoundlyConsulting\Campaigns\Jobs\SendCampaignNotification::class,
'notification' => \App\Notifications\ProductLaunchNotification::class,
'notification-channel' => 'mail',

Vaša notifikácia dostane v konštruktore Campaign aj CampaignRecipient — obe ako verejné readonly vlastnosti — takže každá metóda kanála môže vykresliť vlastný obsah:

namespace App\Notifications;

use Illuminate\Notifications\Messages\MailMessage;
use RoundlyConsulting\Campaigns\Notifications\CampaignNotification;

final class ProductLaunchNotification extends CampaignNotification
{
    public function via(object $notifiable): array
    {
        return ['mail'];
    }

    public function toMail(object $notifiable): MailMessage
    {
        return (new MailMessage)
            ->subject($this->campaign->subject)
            ->greeting('Hello '.$this->recipient->name)
            ->line($this->campaign->content);
    }
}

Job nasmeruje on-demand notifiable cez campaigns.notification-channel (option DefaultChannel) na reachableAt príjemcu a odošle vašu notifikáciu. Pre SMS či push nastavte kanál, ktorý máte nainštalovaný — vonage, fcm a pod. — a telefónne kontakty určte cez viaContactType(ContactType::Phone). Ak campaigns.notification nie je nastavené, každý príjemca zlyhá s CampaignException, ktorá chýbajúcu konfiguráciu pomenuje.

Potrebujete kanál, ktorý nie je notifikáciou Laravelu? Napíšte vlastný job — pozrite si časť Vlastné joby doručenia.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.