SendPortal

Tap a star to rate

SendPortal is open-source email marketing software that you install and run on your own server. It handles subscribers, segments, templates and newsletter campaigns, and it sends the mail through an email service you connect, such as Amazon SES, Postmark, SendGrid, Mailgun or Mailjet, or through plain SMTP. The homepage sums it up as "Open-source self-hosted email marketing. Manage your own newsletters at a fraction of the cost." The footer says it is built by Mettle, and the homepage describes it as open source software powered by the Laravel community. The code is on GitHub.

The audience is developers and technical teams who want their own newsletter platform: people comfortable cloning a repository, running Composer and pointing a web server at a PHP application. There is no hosted version on the site; the offer is the software itself.

What you install

The installation guide says that as of Version 2, SendPortal can be installed in two ways: as a stand-alone application that includes everything you need to run it, or as a package inside an existing Laravel application. The homepage announces the release with the banner "Version 2 released!" and says SendPortal can now be installed as a package. The package route suits a team that already runs a Laravel product and wants newsletter tooling inside the same codebase.

The minimum requirements are PHP 7.3 or later, Git, Composer, and either MySQL 5.7 or later or PostgreSQL 9.4 or later. For the stand-alone install, you clone the repository (the guide's command checks out the v2.0.0 branch), run composer install, and move on to configuration. You also need a web server such as Apache or nginx pointed at the application's public directory; the guide gives a short nginx example and refers to the Laravel deployment documentation for more detail. The documentation also covers configuration and setup, a quickstart guide and an upgrade guide.

Subscribers, segments and campaigns

The homepage headline feature is "Unlimited everything": unlimited users, subscribers, segments and messages. Because you host it, SendPortal itself sets no contact tiers; the practical limits come from your server and your sending service.

Subscribers can be imported or updated through the API or a CSV upload. The homepage says you can "slice and dice" them with custom-defined segments, and the documentation's feature sections cover subscribers, tags, templates, campaigns, messages and workspaces. Campaigns go to all subscribers or to chosen segments, using templates you create yourself.

Message tracking is automatic. For each campaign, SendPortal records sending, opens, clicks, bounces and unsubscribes, provided the email service you use reports those events back (more on that below).

Multiple workspaces let one installation handle several teams or projects through a single interface, which is useful for an agency or a company running separate lists for separate brands. The homepage also promises an interface that is "Fast and easy".

The API

SendPortal has a REST API, which the homepage describes as a flexible way to integrate with it. The API documentation covers templates, subscribers, tags, tag subscribers, subscriber tags and campaigns, so an application can add subscribers, tag them and work with campaigns without anyone opening the dashboard. This is the route for syncing signups from your own product or website.

Sending through your own email service

SendPortal does not deliver mail itself. You add an Email Service in the application and enter the credentials of the provider you use. The documentation has setup guides for AWS SES, Postmark, SendGrid, Mailgun, Mailjet and SMTP.

The Amazon SES guide is the most detailed. It walks through verifying the sending domain with a DNS TXT record, creating a configuration set, and creating a dedicated IAM user with programmatic access rather than using root credentials, attaching the AmazonSESFullAccess policy, plus AmazonSNSFullAccess if you want tracking. It suggests generating DKIM settings once you move to production, to reduce the risk of messages being marked as spam. Tracking with SES runs through Amazon SNS: you create a topic, add an HTTPS subscription pointing at your installation's /api/v1/webhooks/aws endpoint, leave raw message delivery off, and enable the notification types you want, excluding Send and Rendering Failure. The guide also notes that AWS throttles the SES API to 1 request per second by default, so a cache has to be configured: the file driver is enough for a small list, and the guide recommends Redis for medium or large lists.

For Mailgun, you add and verify a custom domain through DNS, copy the private API key into SendPortal, and add a webhook for each event type pointing at /api/v1/webhooks/mailgun. For Mailjet, you configure a sender address, copy the API key and secret (or use a sub-account key with a narrower scope), and set up webhooks to /api/v1/webhooks/mailjet; the guide notes that SendPortal handles both single and grouped events, and that its own open and click settings override Mailjet's account defaults for each new campaign.

SMTP works too, with a trade-off the documentation states plainly: if you send through SMTP, you will not be able to track your campaigns, so deliveries, opens and clicks are not available. For production environments, the documentation recommends one of the API email services instead.

Cost

SendPortal is open source and free to install. Your costs are the server you run it on and the email service you send through, both billed by those providers. The homepage presents the savings as the main reason to self-host, alongside the promise "your data is always under your control."

Who it suits

SendPortal suits a developer or a small technical team that wants a newsletter and campaign tool it owns outright: subscriber data in its own MySQL or PostgreSQL database, sending through a provider it already pays for, and no per-contact fee. It is a natural fit for a Laravel shop, since it can live inside an existing Laravel application, and for an agency or company that wants several workspaces on one install. A team already sending application mail through SES, Mailgun or Postmark can add marketing campaigns on the same account.

It suits a non-technical marketer much less. Getting to a first campaign means a PHP server, a database, Composer, web server configuration and webhook setup at the email service, and upgrades, backups and security patches are your job. Anyone who needs SMS or other channels will not find them here: the site describes an email tool only. Sending through SMTP alone also means giving up open and click tracking.

More in Self-Hosted Email Marketing Software

See all