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

Odoslanie kampane

Fasáda Campaigns je najrýchlejší spôsob, ako kampaň vytvoriť, adresovať a odoslať. create() prijme predmet a obsah a vráti fluent builder PendingCampaign; UUID kampane sa vygeneruje automaticky:

use RoundlyConsulting\Campaigns\Facades\Campaigns;

$campaign = Campaigns::create('Our spring collection is here', '<p>Hello, the spring collection just landed.</p>')
    ->from('[email protected]', 'Example Shop')
    ->to(['[email protected]', '[email protected]'])
    ->dispatch();                    // prepare + start in one call

// Follow it through its handle.
$progress = Campaigns::campaign($campaign->uuid)->progress();
$progress->percentage();   // share delivered so far, e.g. 42.5 — live while sending
$progress->failed;         // deliveries that failed
$progress->remaining();    // recipients with no outcome yet
$progress->isRunning();    // bool
$progress->isComplete();   // bool

// Cancel it and its batch; the cancelled Campaign comes back.
$campaign = Campaigns::cancel($campaign->uuid);

dispatch() kampaň pripraví — otvorí jej dávku jobov, uloží ju aj s príjemcami a nastaví stav Pending — potom ju spustí a vráti aktuálny objekt Campaign.

Metódy buildera

  • from($address, ?$name) — odosielateľ; meno je predvolene rovnaké ako adresa. Bez neho platia uložené predvolené nastavenia — a ak chýba aj predvolená from-address, globálne mail.from mailera.
  • to($recipients) — pridá príjemcov; volania sa sčítavajú. Pozrite si časť Príjemcovia.
  • uuid($uuid) — vlastné id namiesto vygenerovaného. uuid, ktoré už má iná kampaň, vyhodí CampaignAlreadyExists: príprava existujúcu kampaň nikdy neprepíše ani znova neodošle.
  • subject($subject) / content($content) — nahradia hodnoty zadané v create().
  • onlyVerified(bool $onlyVerified = true) / viaContactType($type) — pravidlá pre určenie príjemcov z kontaktov a vlastníkov.
  • prepare() — otvorí dávku, uloží kampaň aj s príjemcami a ponechá ju v stave Pending bez odoslania.
  • dispatch() — príprava a spustenie jedným volaním.

Pripravte teraz, odošlite neskôr

use RoundlyConsulting\Campaigns\Facades\Campaigns;

$campaign = Campaigns::create('Draft subject', 'Draft body')
    ->uuid('0b6f4c1e-8d2a-4f0e-9c3b-5a7d2e1f4b6c')          // your own id instead of a generated UUID
    ->subject('Our spring collection is here')               // replace the subject
    ->content('<p>Hello, the spring collection just landed.</p>')
    ->from('[email protected]')                               // the name defaults to the address
    ->to('[email protected]')
    ->prepare();                                             // batch opened, status Pending, nothing sent

// Later — from a scheduled job or an admin action:
Campaigns::start($campaign->uuid);   // only a Pending campaign starts

prepare() uloží kampaň aj s príjemcami a vráti ju v stave Pending. Keď budete pripravení, spustite ju cez Campaigns::start(). Spustiť sa dá len kampaň v stave Pending — spustenie kampane, ktorá sa už odosiela alebo skončila, vyhodí InvalidCampaignTransition namiesto toho, aby všetkých príjemcov zaradilo do fronty druhýkrát. Platí to aj vtedy, keď ju v tej istej chvíli spustia dva procesy — dvojklik na tlačidlo, dva workery plánovača: presun do Processing je jedno atomické compare-and-set a príjemcov zaradí len jeho víťaz. Kampaň, ktorá nemá komu posielať — nemá príjemcov alebo boli všetci vlastníci odfiltrovaní — sa dokončí hneď po spustení.

Spustenie v neskoršom requeste vyžaduje databázové úložisko: úložisko v pamäti žije len počas aktuálneho requestu, konzolového príkazu alebo jobu vo fronte.

Ostatné metódy fasády — vyhľadávanie, výpis, handle pre jednu kampaň, settings() — opisuje časť Fasáda Campaigns.

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.