Skip to main content
Email is configured as a channel on a sender profile, sending from a domain you own and verify. No identity verification is needed to send email: a verified domain and your plan’s quota are all it takes.

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

Sandbox email is no longer available

Sandbox domains (*.sandbox.zavu.dev) have been retired. Every email channel sends from a domain you own. A sender still configured with a sandbox domain must be reconfigured with a verified domain to keep sending; the steps below cover it.

Custom Domain Email

Add your own domain to send from addresses like noreply@yourcompany.com.
1

Add your domain

Domains are managed under Accounts, so one domain can serve several senders. Add your domain there (e.g., yourcompany.com). The Email channel dialog links to it with Go to Accounts to add a domain when the project has none yet.
2

Configure DKIM records

Open the domain’s DNS panel. It lists the DKIM CNAME records to add at your DNS provider, formatted for that provider. Copy each record and add it:The 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.
3

Wait for verification

Verification runs automatically in the background once the records propagate; you can close the dialog and Zavu notifies you when it is done. Once verified, the domain status changes to Verified and the from address fields appear.
4

Select the domain on your sender

Go to Sender Profiles > your sender > Channels tab > click the Email card, and pick the domain under Email Domain.
5

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
6

Save

Click Save to enable the email channel with your custom domain.
No identity verification is required to send email. What applies is your plan’s email quota (100 a day and 3,000 a month on Free) and the reputation of your domain. Email broadcasts are the one exception: they need the account past the unverified level (identity verification, a saved payment method, a settled deposit, or a paid plan). See Sending limits.

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.

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. Your domain needs an MX record for it.

Add the 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.

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