Back to Overview

Email Setup: Postmark

Send Tymeslot's booking and account emails through Postmark, with per-message delivery and bounce tracking.

Luka Breitig, Software Engineer & AI Developer
Luka Breitig

Zaktualizowano: 23 czerwca 2026

Before You Begin

  • A Postmark account (the free tier covers 100 emails per month, enough for testing)
  • A sending domain you control, so you can add the DNS records Postmark needs to verify it
  • A running Tymeslot instance with access to its environment variables or .env file
  • The ability to restart Tymeslot after changing environment variables

By the end of this guide, Tymeslot sends all its email through Postmark, and you can see the delivery status and any bounce for every message.

Why Use Postmark Instead of Generic SMTP?

Generic SMTP works, but once Tymeslot hands an email off, you cannot see what happened to it. Postmark is a transactional email service built for the booking confirmations and notifications Tymeslot sends, and it shows whether each message was delivered, bounced or marked as spam.

  • Dedicated infrastructure: your emails share a sending pool only with other transactional mail, never bulk marketing, which protects your sender reputation.
  • Per-email delivery tracking: see when each booking confirmation was delivered or, if it bounced, why.
  • Bounce management: Postmark stops sending to addresses that hard-bounce, so a dead address cannot keep damaging your domain's reputation.
  • Free tier: 100 emails per month at no cost, enough for testing and very small deployments.

1 Create a Postmark Account

  1. 1 Go to postmarkapp.com and sign up for a free account with your name, email address and a password.
  2. 2 Click the verification link Postmark emails you. You cannot send email until you confirm your address.
  3. 3 After confirming, you are taken to the Server list screen. Each Server in Postmark groups message streams with their own API token, activity log and settings.

2 Create a Server

A Postmark Server holds your API token, message streams and delivery history. Create one per Tymeslot environment (for example, one for production and one for staging).

  1. 1 On the Server list screen, click Create Server.
  2. 2 Enter a name, such as "Tymeslot Production". Leave the delivery type on Live: a Sandbox server accepts mail but never delivers it.
  3. 3 Click Create Server. You are taken to the server dashboard, which shows an empty Activity stream and tabs for Message Streams, Settings, and others.

3 Get Your Server API Token

  1. 1 Inside the server you just created, click the [API Tokens] tab in the top navigation.
  2. 2 Find the Server API Token near the top of the page. Click Show if it is hidden, then click Copy.
  3. 3 Keep this token private: anyone who has it can send email as this server. Store it in your password manager or secrets vault until you add it to your environment variables in Step 5.

Server API Token vs Account API Token

Postmark has two token types. Use the Server API Token from inside a specific server. Do not use the Account API Token from your account settings: it has account-wide permissions that Tymeslot does not need.

4 Verify Your Sender Domain

Postmark will not deliver email from an unverified domain. Verifying the domain also turns on DKIM signing, which makes your email far less likely to land in spam.

  1. 1 In the top navigation, click [Sender Signatures]. This is an account-level page, so you will find it outside any individual server.
  2. 2 Click Add Domain or Signature, then choose Add Domain. Enter the domain part of your sending address: for example, if EMAIL_FROM_ADDRESS=noreply@acme.com, enter acme.com.
  3. 3 Postmark shows you two DNS records to add: a DKIM TXT record and a Return-Path CNAME. Add both to your domain's DNS settings through your registrar or DNS provider.
  4. 4 Click Verify. DNS changes can take anywhere from a few minutes to 24 hours to propagate. When Postmark detects both records, the domain status changes to Verified with a green indicator.
  5. 5 Confirm the DKIM and Return-Path both show as verified before moving on to Step 5. One verified record is not enough.

Testing Before Domain Verification Is Complete

If you cannot wait for DNS to propagate, add a single-address Sender Signature (Add Signature instead of Add Domain) and verify only that email address. Set EMAIL_FROM_ADDRESS to that address for initial testing, then switch to a domain signature once verified.

5 Configure Environment Variables

Open your .env file (or your hosting platform's environment variable settings) and set the following, using the Server API Token you copied in Step 3.

EMAIL_ADAPTER=postmark
EMAIL_FROM_NAME="Acme Corp"
EMAIL_FROM_ADDRESS=noreply@acme.com
POSTMARK_API_KEY=your-server-api-token
Variable Purpose
EMAIL_ADAPTER Must be postmark to send through Postmark's API instead of SMTP.
EMAIL_FROM_NAME The display name recipients see in their inbox, such as "Acme Corp". Wrap it in quotes if it contains spaces.
EMAIL_FROM_ADDRESS Must belong to a domain or signature that is fully verified in Postmark.
POSTMARK_API_KEY The Server API Token from Step 3. Do not use an Account API Token.

6 Restart Tymeslot

Tymeslot reads environment variables at startup. Save your .env file and restart the application; changes take effect only after a restart. With Docker Compose, run docker compose up -d, which recreates the container with the new values; a plain restart keeps the old ones.

Once Tymeslot is back up, trigger a test email: go to your Tymeslot sign-in page and click Forgot password?. Enter your account email address and submit.

The password reset email should arrive within a few seconds. Meanwhile, open your server's [Activity] tab in the Postmark dashboard to watch the message appear as Postmark processes it.

If you get a 422 "Sender signature not found" error

The domain in your EMAIL_FROM_ADDRESS is not verified in Postmark. Go back to Step 4 and check that the DKIM and Return-Path records both show as verified, then try again.

If emails only reach addresses on your own domain

Until Postmark approves a new account, it only delivers to addresses on the same domain as your verified sender signatures. Request account approval from the Postmark dashboard to send to any recipient.

Monitoring Deliverability

The Activity tab inside your Postmark server is where you check delivery. It lists every email Tymeslot has sent, with a timeline for each message.

For each email you can see the recipient, the subject, when Tymeslot submitted it, when the recipient's mail server accepted it, and the bounce reason if delivery failed. Tymeslot turns open and click tracking off for booking and account emails, so those messages show no open events.

Check the Activity tab after your first real bookings go out. A hard bounce means the address is invalid, and Postmark stops sending to it. A soft bounce is a temporary failure, and Postmark retries it.

Spam Complaints

If a recipient marks your email as spam, Postmark surfaces this as a spam complaint in the Activity view. Repeated complaints damage your sender reputation with every mailbox provider. Check the [Suppressions] tab regularly to see which addresses have complained or bounced.

❓ Frequently Asked Questions

What's the difference between a Server Token and an Account API Token?

Postmark has two token types, and Tymeslot needs the server one. The Server API Token belongs to a single Postmark server and can only send email and read activity for that server. The Account API Token lives in your account settings and can manage servers, domains and sender signatures across the whole account.

Tymeslot sends with the Server API Token; an Account API Token is rejected when sending. Find the Server Token inside your server under the [API Tokens] tab.

My emails are showing as 'sent' in Tymeslot but not arriving. Why?

If Tymeslot handed the email to Postmark successfully, the problem lies after that hand-off. Open the [Activity] tab inside your Postmark server, where every outbound message has a delivery timeline.

Look for soft bounces (temporary failures that Postmark retries), hard bounces (permanent failures, usually an invalid address) or spam complaints. If messages show as Delivered in Postmark but do not appear in the inbox, check the recipient's spam or junk folder, and confirm DKIM is verified for your domain.

Do I need to verify my sending domain with Postmark?

Yes. Postmark only sends from a verified domain or a verified single-address sender signature, and a domain is the practical choice for production.

Verifying the domain also turns on DKIM signing; without DKIM, more of your email lands in spam whatever its content. Follow Step 4 to add the DKIM TXT record and Return-Path CNAME that Postmark gives you. Once both show as verified, the domain is ready.

Can I use Postmark's sandbox mode for testing?

Yes. Create a separate Postmark server with the delivery type set to Sandbox and use its Server API Token: Postmark accepts and logs every message but never delivers it, so you can test without emailing real people.

Separately, until Postmark approves a new account, a Live server only delivers to addresses on the same domain as your verified sender signatures. Request approval from the Postmark dashboard before you take bookings from the public.

How do I find my Server Token in Postmark?

In the Postmark dashboard, go to Servers and select the server you created for Tymeslot. Inside the server, click the [API Tokens] tab in the top navigation. The Server API Token is near the top of that page: click Show if it is hidden, then Copy to copy it to your clipboard.

If you cannot find the API Tokens tab, you are probably at the account level, which shows the server list. Click into a server first.

Verify Your Setup

Work through this checklist to confirm Tymeslot is sending through Postmark and the mail is arriving.
  • Password reset email arrives in your inbox. Trigger a reset from the sign-in page and confirm it arrives within a few seconds.
  • The email appears in Postmark's Activity stream. Open [Activity] inside your server and confirm the message shows a Delivered status.
  • Booking confirmation arrives after a test booking. Create a test meeting type, book it with a second email address, and confirm the attendee's confirmation arrives.
  • FROM address is correct. Both emails show the name and address from EMAIL_FROM_NAME and EMAIL_FROM_ADDRESS, not a Postmark default.
  • No errors in the Suppressions tab. Confirm Postmark has not bounced or suppressed your test addresses.

🔗 Related Articles

Read Email Setup: SMTP and Provider APIs

Email Setup: SMTP and Provider APIs

Set up outgoing email for Tymeslot via SMTP or a provider API. Covers booking confirmations, reminders, and password resets. Includes steps for Gmail, Amazon SES, SendGrid, Mailgun, and AhaSend.