Skills postmark

install
source · Clone the upstream repo
git clone https://github.com/TerminalSkills/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TerminalSkills/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/postmark" ~/.claude/skills/terminalskills-skills-postmark && rm -rf "$T"
manifest: skills/postmark/SKILL.md
safety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
  • references .env files
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content

Postmark

Overview

Postmark is an email delivery service focused on transactional emails (password resets, receipts, notifications). It has the highest deliverability rates in the industry (99%+ inbox placement), dedicated IP pools for transactional vs marketing, and built-in email templates.

Instructions

Step 1: Send with Node.js

// lib/postmark.ts — Postmark client
import { ServerClient } from 'postmark'

const client = new ServerClient(process.env.POSTMARK_API_TOKEN!)

// Send with HTML
await client.sendEmail({
  From: 'notifications@myapp.com',
  To: 'user@example.com',
  Subject: 'Your order has shipped',
  HtmlBody: '<h1>Order Shipped!</h1><p>Tracking: ABC123</p>',
  TextBody: 'Order Shipped! Tracking: ABC123',
  MessageStream: 'outbound',          // 'outbound' for transactional, 'broadcast' for marketing
})

// Send with template
await client.sendEmailWithTemplate({
  From: 'notifications@myapp.com',
  To: 'user@example.com',
  TemplateAlias: 'order-shipped',
  TemplateModel: {
    customer_name: 'Alice',
    order_id: 'ORD-2025-001',
    tracking_number: 'ABC123',
    tracking_url: 'https://track.example.com/ABC123',
    items: [
      { name: 'Widget Pro', quantity: 2, price: '$29.99' },
      { name: 'Gadget Plus', quantity: 1, price: '$49.99' },
    ],
  },
  MessageStream: 'outbound',
})

Step 2: Batch Sending

// Send up to 500 emails in one API call
await client.sendEmailBatch([
  {
    From: 'billing@myapp.com',
    To: 'user1@example.com',
    Subject: 'Invoice #INV-001',
    HtmlBody: renderInvoice(invoice1),
    Tag: 'invoice',
  },
  {
    From: 'billing@myapp.com',
    To: 'user2@example.com',
    Subject: 'Invoice #INV-002',
    HtmlBody: renderInvoice(invoice2),
    Tag: 'invoice',
  },
])

Step 3: Inbound Email Processing

// Postmark can forward inbound emails to your webhook
// POST /webhooks/inbound-email
export async function handleInboundEmail(req) {
  const { From, Subject, TextBody, Attachments } = req.body

  // Process support emails
  await createSupportTicket({
    from: From,
    subject: Subject,
    body: TextBody,
    attachments: Attachments.map(a => ({
      name: a.Name,
      content: Buffer.from(a.Content, 'base64'),
    })),
  })
}

Guidelines

  • Postmark separates transactional and marketing streams — transactional emails get priority delivery.
  • Use server-side templates for consistent formatting; use React Email for complex layouts.
  • Tags help track email categories (invoice, welcome, password-reset) in analytics.
  • Postmark's bounce and spam complaint handling is automatic — it removes bad addresses.
  • Free tier: 100 emails/month. Paid: $15/month for 10,000 emails.