ZTS Docs
Email/Integrations

Plunk Integration

How the Plunk email service is integrated.

This document explains how the Plunk email service is integrated for sending transactional emails. Plunk can be a cost-effective alternative to other providers, leveraging Amazon SES under the hood, and offers self-hosting options.

Configuration

  1. Provider Selection: To use Plunk, the NEXT_PUBLIC_EMAIL_PROVIDER environment variable must be set to "plunk". This can be done via the configuration UI (/configure) or directly in the .env file.

  2. Secret Key: The PLUNK_SECRET_KEY environment variable must contain a valid Secret Key obtained from your Plunk account or self-hosted instance.

How it Works

When NEXT_PUBLIC_EMAIL_PROVIDER is set to "plunk", the core email router calls the Plunk-specific sending logic located in src/server/email/send-email-plunk.ts.

This logic:

  • Uses the official @plunk/node SDK.

  • Checks if PLUNK_SECRET_KEY is configured (isPlunkConfigured).

  • Takes a standard EmailPayload.

  • Renders React components to HTML using @react-email/render, as Plunk primarily uses the HTML body.

  • Calls plunk.emails.send with to, subject, and body (HTML or text).

  • Includes basic error handling.

  • Cost-Effective: Plunk often presents a cheaper alternative, especially when self-hosted or using their managed service built on AWS SES.

  • Daily Sending Limit: Be aware of potential sending limits, especially on free/basic tiers. See the General Email Configuration for discussion and mitigation strategies.

  • From Address: The from address is typically managed within your Plunk dashboard settings, not directly in the API call.

  • Self-Hosting: Plunk can be self-hosted, giving you more control over your email infrastructure. Setup details are beyond this document; refer to official Plunk documentation.

On this page