Skip to content
Docs

Send white-label email with Postmark

Connect Postmark to Voice AI Portal with a Server API token, and every email the portal sends for your agency goes out through your Postmark server from your own domain: sign-in codes, client user welcomes, team invites, client billing emails and outbound email campaigns. When you save, the portal adds a webhook to your Postmark message stream, so it records whether each email is delivered, bounced or marked as spam.

This guide is one of five sender guides. For a comparison, see Configure custom email.

  • Owner access. The Email Hub is in Settings, which only the agency owner opens.
  • A Postmark account with a server for your agency’s email.
  • Access to your domain’s DNS, to verify your sending domain.
  • A From address on that domain, for example hello@youragency.com.

Postmark sends only from a confirmed sender signature or a verified domain. For client email, verify the domain.

  1. Add the domain

    In Postmark, open Sender Signatures and add your domain.

  2. Add the DNS records

    Postmark shows two records. Add them at your DNS host exactly as shown:

    Type What it does
    TXT (DKIM) Signs each email so mailbox providers can check it came from your domain. Required to verify the domain.
    CNAME (Return-Path), pointing to pm.mtasv.net Lets bounces come back to Postmark, and aligns SPF with your domain. Postmark recommends it.

    Adding these records doesn’t change your other DNS records.

  3. Verify

    Select Verify next to each record in Postmark. Postmark says DNS changes can take up to 48 hours to show.

  4. Add DMARC (recommended)

    If your domain has no DMARC record, add a TXT record named _dmarc with the value v=DMARC1; p=none;.

Postmark’s guide: How do I verify a domain? (opens in a new tab)

In Postmark, open your server, then API Tokens, and copy the Server API token. Use the server’s token, not the Account API token: the portal checks the token against your server and refuses an Account token.

Postmark’s guide: What are the SMTP details / API Tokens I should be using? (opens in a new tab)

  1. Open the Email Hub

    Go to Settings and open the Email Hub tab. In Your email sender, under How you send, select Postmark.

  2. Fill in the fields

    Field What to enter
    Server API token The token you copied. It is encrypted at rest and never shown again. When you edit other fields later, leave it blank to keep the saved token.
    Message stream The stream to send through. Leave it as outbound, the server’s default transactional stream, unless you created another transactional stream for these emails.
    Reply-to Email Where client replies go, for example support@youragency.com.
    From Name Your agency name as clients see it.
    From Email An address on your verified domain, or a confirmed sender signature.
  3. Select Save Sender Settings

    The portal checks the token with Postmark before saving anything. It then adds the delivery webhook to the message stream and shows Connected to Postmark and saved. The card shows Connected: Postmark and the delivery tracking line.

If you change the Message stream later, enter the token again.

Enter an address next to Send Test Email and select Send Test Email. When Postmark sends it from your address, the badge changes from Send a test email to confirm to Test email accepted. Check that it arrives from your From Email and that replies go to your Reply-to Email.

If the message says the test went out from the platform address, Postmark refused it and the message gives Postmark’s reason and error code, for example a From address without a confirmed signature, or an account still pending approval. You can send up to 10 test emails an hour.

When you save, the portal creates a webhook on your message stream that points to app.voiceaiportal.com with a private address for your agency. Postmark doesn’t sign webhooks, so the portal adds a secret header to the webhook and checks it on every event. You don’t need to copy or paste anything, and you shouldn’t edit or delete the webhook in Postmark.

Postmark event What the portal records
Delivery Delivered
Bounce: hard bounce, bad address, blocked, DMARC policy and other permanent types Failed, with Postmark’s description
Bounce: transient, soft bounce or DNS error Delivery delayed
Spam complaint Marked as spam

Opens and link clicks are not tracked, and Postmark’s open and link tracking stay off for these emails, so sign-in links always work exactly as sent.

The Email Hub shows Delivery tracking on. Last update with the time the last event arrived. If it shows Delivery tracking off, sending still works and Postmark’s reason is shown next to it.

What happens if Postmark can’t send an email?

Section titled “What happens if Postmark can’t send an email?”
  • Postmark refuses it (for example an unconfirmed From address, a wrong token or an account pending approval): the email goes out from the Voice AI Portal address instead, under your From Name and with your Reply-to Email, so your client still gets it.
  • Postmark is busy or briefly unavailable: the portal retries before it moves to the platform address.
  • The recipient is inactive in Postmark (it bounced or complained before) or the address is invalid: the email is not sent from another address.
  • Outbound email campaigns never use the platform address. If Postmark refuses a campaign email because of your setup, the campaign pauses with the reason. See Email campaigns.

Can I send email campaigns through Postmark?

Section titled “Can I send email campaigns through Postmark?”

The portal sends campaign emails through the Message stream you saved. A campaign playbook is ready once the Email Hub shows Test email accepted; until then it shows “Verify your sending domain in Settings → Email Hub first”. Postmark separates transactional and broadcast email into different streams, so check that your stream and Postmark’s sending policies fit the campaigns you plan to run. See Email campaigns.

Problem What to do
“Postmark rejected this server token (…). Use a Server API token, not the Account token. Nothing was saved.” Copy the Server API token from your server’s API Tokens page.
“Couldn’t reach Postmark (…). Nothing was saved.” Wait a moment and save again.
“Enter the Postmark API key again: it is needed when the account settings change” You changed the Message stream. Paste the token and save.
Delivery tracking off: “Postmark didn’t accept the delivery webhook (…)” Check the stream name exists on this server, then save again with the token.
The test went out from the platform address Read Postmark’s reason. Usually the From Email isn’t on a verified domain or confirmed signature.
The badge stays on Send a test email to confirm Send a test email. It changes once Postmark sends it from your address.
“Too many changes to your email settings. Try again in an hour.” The Email Hub accepts 10 saves an hour.

Select Disconnect Postmark and confirm. The saved token is removed, the webhook is removed from your Postmark stream, and your emails go out from the platform address straight away. Your sender details stay. Switching to another sender also removes the webhook.