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

->to() sa sčítava a prijíma e-mailovú adresu či iný reťazec smerovania, CampaignRecipient, kontakt Contact z contacts-for-laravel, model vlastníka s HasContacts alebo akýkoľvek iterovateľný zoznam z nich — pole, kolekciu či generátor:

use Illuminate\Support\Str;
use RoundlyConsulting\Campaigns\CampaignRecipient;
use RoundlyConsulting\Campaigns\Facades\Campaigns;

Campaigns::create('Our spring collection is here', $html)
    ->from('[email protected]', 'Example Shop')
    ->to('[email protected]')                          // one address or route
    ->to(['[email protected]', '[email protected]'])    // any iterable — calls are additive
    ->to(new CampaignRecipient(                      // full control over the id and name
        uuid: (string) Str::uuid(),
        name: 'Dana Novak',
        reachableAt: '[email protected]',
    ))
    ->dispatch();
  • Obyčajný reťazec sa stane príjemcom, ktorého meno aj adresa sú tento reťazec, s vygenerovaným UUID.
  • CampaignRecipient sa ponechá bez zmeny — použite ho, ak chcete nastaviť zobrazované meno alebo vlastné id.
  • Každá adresa sa pridá len raz: adresa, ktorá už v kampani je — porovnáva sa bez ohľadu na veľkosť písmen a na to, ako prišla (reťazec, CampaignRecipient, vlastník či kontakt) — sa preskočí a platí tá, ktorá bola pridaná ako prvá.
  • Príjemca, ktorý už patrí inej kampani, sa pridá ako nová kópia — s novým uuid a čistým stavom doručenia — a z pôvodnej kampane sa nikdy nepresunie.
  • Čokoľvek iné — číslo alebo model bez traitu HasContacts — vyhodí InvalidArgumentException.

Pre kontakty a vlastníkov platia vlastné pravidlá — pozrite si časť Príjemcovia z kontaktov.

Veľké zoznamy

Pri veľkom publiku zdrojový dopyt streamujte namiesto načítania naraz: lazyById() číta tabuľku po častiach a to() prijme lazy kolekciu ako akýkoľvek iný iterovateľný zoznam. Všetci príjemcovia sa uložia pri príprave kampane a start() potom spustí jeden job na každého uloženého príjemcu:

use App\Models\Subscriber;
use Illuminate\Support\Str;
use RoundlyConsulting\Campaigns\CampaignRecipient;
use RoundlyConsulting\Campaigns\Facades\Campaigns;

$campaign = Campaigns::create('Monthly digest', $html)
    ->from('[email protected]', 'Example Shop')
    ->to(Subscriber::query()->lazyById(500)->map(fn (Subscriber $subscriber) => new CampaignRecipient(
        uuid: (string) Str::uuid(),
        name: $subscriber->name,
        reachableAt: $subscriber->email,
    )))
    ->prepare();

Campaigns::start($campaign);   // one job per stored recipient

Celé publikum zozbierajte pred prepare() alebo dispatch() — start() zaradí do fronty príjemcov uložených v tej chvíli.

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.