skillmake
← marketplace
engineersapisha:0172600bc9bb1b36manual

postmark-skills

Use when teaching an AI coding agent to send transactional email through Postmark with templates, inbound parsing, webhooks, and deliverability monitoring.

Install confidence
curl --create-dirs -fsSL https://skillmake.xyz/i/postmark-skills -o ~/.claude/skills/postmark-skills/SKILL.md
Pinned content
sha:0172600bc9bb1b36
Generated with
manual
Source
postmarkapp.com

The file served at /api/marketplace/postmark-skills-0172600b/raw matches this hash. Inspect before install, then copy the command.

4,301 chars · ~1,075 tokens
---
name: postmark-skills
description: Use when teaching an AI coding agent to send transactional email through Postmark with templates, inbound parsing, webhooks, and deliverability monitoring.
source: https://postmarkapp.com/blog/teach-your-ai-coding-agent-how-to-send-email-with-postmark-skills
generated: 2026-05-17T04:18:31.286Z
category: api
audience: engineers
---

## When to use

- Sending a transactional email via Postmark from an AI-generated code path
- Batching up to 500 messages in a single Postmark request
- Processing inbound email and routing replies via MailboxHash
- Authoring server-side Handlebars templates with layout inheritance
- Wiring delivery, bounce, open, and click webhooks
- Setting up SPF, DKIM, and DMARC for a sending domain

## Key concepts

### Postmark agent skill bundle

Five skill packs that act as instruction manuals an AI agent reads before writing Postmark code: send-email, inbound, templates, webhooks, and best practices.

### Message Streams

Postmark separates transactional and broadcast traffic into distinct streams so deliverability of one-to-one mail is not impacted by bulk sends; the skill enforces choosing the right stream per call.

### Batch send

A single API call delivers up to 500 messages, with each entry receiving its own MessageID and ErrorCode so partial failures are inspectable without retrying the whole batch.

### Handlebars templates with layouts

Server-side templates support layout inheritance and validation, so a base layout owns header/footer and per-message templates inject body content; templates can be deployed between staging and production.

### Inbound MailboxHash

An inbound address like reply+abc123@inbound.example.com routes the abc123 token to the webhook as MailboxHash, enabling reply-by-email threading and email-to-ticket flows.

### Webhook events

Postmark posts JSON to a configured URL for delivery, bounce, open, click, spam complaint, and subscription change events; the skill documents payload shapes and recommended handler patterns.

## API reference

```
npx skills add ActiveCampaign/postmark-skills
```

Installs the full Postmark agent skill bundle for any compatible coding agent.

```
npx skills add ActiveCampaign/postmark-skills
```

```
npx skills add ActiveCampaign/postmark-skills --skill postmark-send-email
```

Installs only the send-email skill when other Postmark capabilities are not needed.

```
npx skills add ActiveCampaign/postmark-skills --skill postmark-send-email
```

```
POST /email with X-Postmark-Server-Token
```

Single transactional send authenticated by a per-server token; required headers and JSON body shape are taught by the send-email skill.

```
POST https://api.postmarkapp.com/email
X-Postmark-Server-Token: <server-token>
{
  "From": "you@example.com",
  "To": "user@example.com",
  "Subject": "Hello",
  "HtmlBody": "<p>Hi</p>",
  "MessageStream": "outbound"
}
```

```
POST /email/batch (up to 500 messages)
```

Sends up to 500 emails in one request; each result row contains its own ErrorCode and MessageID.

```
POST https://api.postmarkapp.com/email/batch
[
  { "From": "you@example.com", "To": "a@example.com", "Subject": "Hi", "TextBody": "..." },
  { "From": "you@example.com", "To": "b@example.com", "Subject": "Hi", "TextBody": "..." }
]
```

## Gotchas

- Server tokens authenticate to a specific Postmark server; using a token from the wrong server returns 401 and the email is silently not sent.
- Choosing the broadcast stream for a transactional send hurts deliverability and may violate Postmark's terms.
- Batch responses are arrays even on partial failure; callers must iterate ErrorCode per row instead of trusting the HTTP status.
- Inbound MailboxHash only populates when the address contains a + token; sending to the bare inbound address yields empty MailboxHash.
- Webhooks must be HTTPS and respond 200 quickly; long handlers cause Postmark to retry and double-deliver events.
- Sending from an unverified domain or without SPF/DKIM aligned will degrade reputation; the best-practices skill enforces DMARC alignment.

---
Generated by SkillMake from https://postmarkapp.com/blog/teach-your-ai-coding-agent-how-to-send-email-with-postmark-skills on 2026-05-17T04:18:31.286Z.
Verify against source before relying on details.

File: ~/.claude/skills/postmark-skills/SKILL.md