mettle/sendportal-core
Core Laravel package powering SendPortal, a self-hosted email marketing platform. It provides models, services, and backend logic for managing subscribers, lists, campaigns, templates, and sending email through multiple providers.
SendPortal Core is the Laravel domain package behind SendPortal-style email marketing: subscribers, tags, campaigns, messages, sending adapters, and provider webhooks. For v4.0.1, treat this as a maintenance patch with no obvious breaking changes called out, but with meaningful reliability fixes around sending, webhooks, merge tags, and subscription links. Upgrade and retest those paths rather than assuming a no-op patch.
Start with:
mettle/sendportal-core), publish the package config/migrations using the package’s publish tags, and run migrations.app.timezone.Campaign, Subscriber, Message, and Tag, and the mail adapter/webhook handlers.First practical use case: add SendPortal Core to an existing Laravel app as the email-marketing domain layer, keep your app’s UI and business rules outside the vendor package, and use queues for both campaign sending and webhook processing.
queue:work in every environment that sends mail or processes provider callbacks, and schedule campaign dispatch/processing as needed.SubscriptionChange webhook type. If you use SES, recheck your webhook mapping against the updated handler.{{email}}, {{first_name}}, and {{last_name}}, plus any spaced variants, because this release includes both a merge-tag spacing change and a revert.displayDate now defaults to the configured timezone. Set app.timezone explicitly and clear config cache after deployment; otherwise date display may shift in unexpected ways.{{ first_name }} are safe without testing your installed version.PostalAdapter fix. SMTP users should expect failed sends to be reported as failed, which may increase visible failure counts but improves accuracy.How can I help you explore Laravel packages today?