Skip to content

Email & newsletters

Email in Astropress covers two distinct jobs, and the right tool for each is different:

  • Newsletter / campaign email — bulk sends to a subscriber list, with open tracking, unsubscribe links, and campaign analytics → use Listmonk
  • Transactional email — triggered one-to-one messages like password resets, order confirmations, and account notifications → use Resend or any SMTP relay

You can enable both at the same time: astropress add --email listmonk --transactional-email smtp.

Newsletter: Listmonk

Listmonk is a self-hosted newsletter and mailing list manager. It handles subscriber imports, double opt-in, HTML/plain-text templates, campaign scheduling, open/click tracking, and unsubscribe compliance. It does not handle transactional email.

AttributeDetail
LicenceMIT
HostingSelf-hosted (Docker, ~200 MB RAM)
CostFree (server cost only)
SMTPBring your own SMTP server (Postal, Brevo SMTP, etc.)
Terminal window
# Add to new project
astropress new my-site --email listmonk
# Add to existing project
astropress add --email listmonk

After scaffolding, see SERVICES.md for Docker Compose setup and LISTMONK.md for integration steps.

When it’s the right choice: you want full control over your subscriber data, your newsletter history, and your send infrastructure. Listmonk is the privacy-respecting default and the only option that keeps all subscriber data on your server.

Limitations:

  • Requires running a persistent Docker container (Listmonk + PostgreSQL)
  • You are responsible for SMTP deliverability (SPF, DKIM, DMARC records)
  • No built-in email-sending — you must point Listmonk at an SMTP server

Further reading: listmonk.app · listmonk.app/docs

Transactional email

Transactional email (password resets, receipts, notifications) needs reliable delivery to individuals. Newsletter tools are not designed for this — use a dedicated transactional service.

Resend

Resend is a hosted transactional email service with a simple API and first-party Node tooling.

AttributeDetail
LicenceHosted service
HostingResend cloud
CostProvider-managed pricing
SetupSign up → create API key → paste into .env
Terminal window
astropress add --transactional-email resend

When it’s the right choice: you want the simplest Astropress integration with a dedicated transactional-email API and managed deliverability.

Limitations:

  • Your send data is on a third-party provider
  • Provider pricing and region controls are external to Astropress
  • You are still responsible for verifying your sending domain

Further reading: resend.com

SMTP

Astropress also supports a generic SMTP contract. This works with self-hosted Postal, Brevo SMTP, Amazon SES SMTP, Mailgun SMTP, Postmark SMTP, and similar relays.

AttributeDetail
LicenceVaries by provider
HostingYour SMTP relay
CostVaries by provider
SetupSet SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, and SMTP_FROM_EMAIL
Terminal window
astropress add --transactional-email smtp

When it’s the right choice: you want one generic config shape that can target a self-hosted relay or a hosted SMTP provider without changing Astropress code.

Limitations:

  • Deliverability depends on the relay you choose
  • Self-hosting Postal still requires DNS work and usually a dedicated IP for good deliverability
  • Hosted SMTP providers have their own limits, pricing, and compliance requirements

Examples: Postal, Brevo SMTP, Amazon SES SMTP, Mailgun SMTP, Postmark SMTP

Combining Listmonk and SMTP

A common setup for full self-hosting:

  • Listmonk for newsletter campaigns → sends via your SMTP relay
  • Astropress SMTP for transactional email → password resets, order confirmations
Terminal window
astropress add --email listmonk --transactional-email smtp

Point Listmonk’s SMTP settings at the same relay, and configure SMTP_HOST / SMTP_PORT / SMTP_USERNAME / SMTP_PASSWORD / SMTP_FROM_EMAIL in your site’s .env.