Skip to main content
Email is configured as a channel on a sender profile. You can start testing immediately with a sandbox domain, or add your own custom domain for production.

Prerequisites

Before setting up email, you need a sender profile. If you don’t have one yet:
  1. Go to Sender Profiles in the dashboard
  2. Click New Sender and give it a name
  3. Once created, click on the sender to open its settings
Sender profiles list

Sandbox Email (Quick Start)

Sandbox domains let you test email sending immediately without configuring DNS records.
Sandbox emails are limited to 100 emails/hour. No KYC required. Use a custom domain for production.
1

Open your sender profile

Go to Sender Profiles and click on the sender you want to configure.
2

Go to the Channels tab

Click the Channels tab in the sender detail page.Sender channels tab
3

Add Email channel and activate Sandbox

Click the Email channel card to open the email configuration dialog. The dialog opens on the Sandbox (Free) tab by default. Click Activate Sandbox Email to create your sandbox domain.Email channel card
4

Configure your from address

Once the sandbox domain is created, configure:
  • From Email Address: The local part before @ (e.g., noreply)
  • From Name: The display name recipients see (e.g., Your Company)
  • Reply-To Email (optional): Where replies go
  • Enable Email Receiving: Toggle this on if you want to receive inbound emails on this address
5

Save

Click Save to enable the email channel on your sender.

Send a Test Email

If you have multiple senders, use the Zavu-Sender header to specify which sender to use. Otherwise, the default sender is used.

Sandbox vs Custom Domain


Custom Domain Email

For production use, add your own domain to send from addresses like noreply@yourcompany.com.
1

Open the Email channel dialog

Go to Sender Profiles > your sender > Channels tab > click the Email card.
2

Switch to Custom Domain tab

Click the Custom Domain tab at the top of the dialog.Custom domain tab
3

Add your domain

Select Add new domain from the dropdown and enter your domain (e.g., yourcompany.com).Add domain
4

Configure DKIM records

Zavu displays the DKIM CNAME records you need to add to your DNS. Copy each record and add them to your DNS provider:DKIM records tableThe records look like:
DNS propagation typically takes a few minutes, but can take up to 72 hours. Use the copy buttons next to each record to avoid typos.
5

Verify DNS

Click Verify DNS to check if your records have propagated. Once verified, the domain status changes to Verified and the from address fields appear.
6

Configure from address

Set your:
  • From Email Address: e.g., noreply
  • From Name: e.g., Your Company
  • Reply-To Email (optional): e.g., support@yourcompany.com
7

Save

Click Save to enable the email channel with your custom domain.
Email sending with custom domains requires KYC verification. Complete identity verification in the dashboard before sending production emails.

Create an email sender via the API

Once a domain is verified (dashboard or above), you can create an email sender programmatically — no phone number required. Set emailAddress to a from-address at your verified domain:
The address’s domain must already be verified in your project. emailDomainId is optional — Zavu resolves it from the address. To attach an email address to an existing sender instead, PATCH /v1/senders/{senderId} with the same emailAddress field. Then send from it — as the default sender, or by passing its ID in the Zavu-Sender header:
cURL
Passing from in the send body does not create or select a sender — the from-address comes from the sender’s configured emailAddress. Create the email sender first (above), then it sends as the default or via Zavu-Sender.

Receiving Emails

Zavu can receive inbound emails and deliver them to your application via webhooks. This works for both sandbox and custom domains.

For Custom Domains: Add MX Record

1

Open the Email channel dialog

Go to your sender > Channels > Email card.
2

Find the MX record section

Under Enable Email Receiving, Zavu shows the MX record to add to your DNS:
3

Verify MX record

After adding the record, click Verify MX. Once verified, the toggle becomes available.
4

Enable receiving

Toggle Enable Email Receiving on and save.

For Sandbox Domains

Toggle Enable Email Receiving directly in the sandbox email configuration and save. No MX record needed.

Set Up Webhook for Inbound Emails

To receive inbound emails in your application, configure a webhook on your sender:
  1. Go to your sender > Webhooks tab
  2. Add your webhook URL and subscribe to the message.inbound event
Or via the API:
When an email is received, Zavu sends a message.inbound event:
See the Webhooks guide for details on signature verification and security.

Catch-all: receive every address at your domain

By default a sender only receives email sent to its exact address (e.g. support@yourcompany.com). Enable Catch-all to receive email addressed to any local part at the domain — sales@, billing@, hello@, or an address that doesn’t exist as its own sender — all delivered through this one sender’s webhook.
1

Enable receiving first

Catch-all builds on receiving, so Enable Email Receiving must be on (the domain’s MX record must be verified). See the steps above.
2

Toggle Catch-all

In the sender’s Channels > Email dialog, turn on Catch-all address and save. The toggle only appears once receiving is enabled.
Every catch-all message fires the same message.inbound event. Route sub-addresses yourself using data.to, which is always the original recipient:
You can also toggle catch-all from the API with emailCatchAllEnabled on the sender:
cURL
Catch-all is per sender. Only one sender per domain should have it enabled — it owns all otherwise-unmatched addresses for that domain. Addresses that exactly match another sender still route to that sender. emailCatchAllEnabled is ignored unless emailReceivingEnabled is also on.

Testing Your Setup

Verify Sending

  1. Send a test email using the code examples above
  2. Check the message status in Messages in the dashboard
  3. Verify the email arrived in the recipient’s inbox

Verify Receiving

  1. Send an email to your configured address (e.g., support@yourcompany.com)
  2. Check your webhook endpoint received the message.inbound event
  3. Verify the inbound message appears in the dashboard under Messages

Common Issues

Next Steps