A Statamic addon for sending entries out through pluggable channels. Pick an entry in the control panel, run the Send It action, choose a channel, and go.
The first channel creates a Mailchimp campaign from the entry. A built-in mailer channel sends the entry through Laravel's configured mailer so you can test-send before committing to a real campaign. The channel layer is designed so additional providers — Postmark lists, SMS, WhatsApp — can be added without touching the action.
composer require abigah/send-itPublish the config (optional):
php artisan vendor:publish --tag=send-it-configSet the relevant environment variables:
# Default channel used when none is chosen
SEND_IT_CHANNEL=mailchimp
# Mailchimp
SEND_IT_MAILCHIMP_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-us21
SEND_IT_MAILCHIMP_AUDIENCE_ID=abc123
SEND_IT_MAILCHIMP_FROM_NAME="Abigah"
SEND_IT_MAILCHIMP_REPLY_TO=hello@abigah.com
# Create drafts by default; flip to send immediately
SEND_IT_MAILCHIMP_SEND_IMMEDIATELY=false
# Mailer (test send) — uses your app's default mailer
SEND_IT_MAILER_TO=you@example.comThe Mailchimp server prefix (e.g. us21) is derived from the API key suffix
automatically; override it with SEND_IT_MAILCHIMP_SERVER_PREFIX if needed.
By default the campaign/email body comes from the entry's content field
(its augmented HTML). Change the source field per channel via
config/send-it.php.
- In the control panel, select one or more entries in a collection listing.
- Run the Send It action.
- Choose a channel (Mailchimp or the mailer test send), optionally set a subject, and confirm.
Mailchimp campaigns are created as drafts by default so you can review them before sending — toggle Send immediately to send right away.
Channel content is wrapped in an Antlers email layout before sending — a
responsive, email-client-safe shell with the logo centered at the top and a
footer (copyright, address, unsubscribe link). Configure it under the email
key in config/send-it.php (logo URL/width, site name, footer text/address,
unsubscribe URL).
Customise the markup by publishing the view:
php artisan vendor:publish --tag=send-it-views
# resources/views/vendor/send-it/default-email/layout.antlers.htmlPoint email.layout at your own view, or set it to null to send content
unwrapped.
Implement Abigah\SendIt\Contracts\Channel and register it from any service
provider:
app(\Abigah\SendIt\Channels\ChannelManager::class)
->extend('postmark', fn ($app) => new PostmarkChannel(config('send-it.channels.postmark')));Configured channels automatically appear in the Send It action's channel picker.
MIT