AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Transactional Email

skill-param087-saas-starter-skills-transactional-email · by param087

Use when sending product email — wire up Resend (or Postmark/SES) with typed React Email templates, send from background jobs not the request path, and cover deliverability basics like SPF/DKIM and unsubscribe.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add skill-param087-saas-starter-skills-transactional-email

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-param087-saas-starter-skills-transactional-email)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Transactional Email? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Transactional Email

Overview

SaaS apps send email constantly: verification, invites, receipts, password resets, alerts. Use a provider built for it (Resend, Postmark, or SES) with React Email for typed, previewable templates. Treat sending as a side effect: trigger it from a background job, not inline in the request, so a slow mail API never blocks the user or fails their action.

When to use

  • Sending verification, invite, receipt, reset, or notification emails.
  • Building reusable, branded email templates.
  • Email sends are slowing requests or failing them.

Template + send

// src/server/email/templates/Invite.tsx
import { Button, Html, Text } from "@react-email/components";

export function InviteEmail({ org, url }: { org: string; url: string }) {
  return (
    
      You've been invited to join {org}.
      Accept invite
    
  );
}
// src/server/email/send.ts
import "server-only";
import { Resend } from "resend";
import { env } from "@/env";
import { InviteEmail } from "./templates/Invite";

const resend = new Resend(env.RESEND_API_KEY);

export async function sendInvite(to: string, org: string, url: string) {
  const { error } = await resend.emails.send({
    from: "Acme ",
    to,
    subject: `Join ${org} on Acme`,
    react: InviteEmail({ org, url }),
  });
  if (error) throw new Error(`Email failed: ${error.message}`);
}

Call sendInvite from a job/queue (see background-jobs), and the action just enqueues it.

Deliverability essentials

  • Verify your domain and set SPF + DKIM + DMARC records — without them you land in spam.
  • Send from a real domain (noreply@yourapp.com), not a free inbox.
  • Include unsubscribe for anything non-essential; keep transactional and marketing streams separate.
  • Idempotency keys on critical sends (receipts) so retries don't double-send.

Pitfalls

  • Sending inline in the request — a 3s mail API call becomes a 3s user wait, and a mail outage fails signups. Enqueue it.
  • Skipping DKIM/SPF — great templates still hit spam without authenticated domains.
  • Hard-coded HTML strings — unmaintainable; use React Email components and preview them.
  • Leaking data across tenants — render with explicit, validated recipient + org; never reuse a cached template with stale props.
  • No failure handling — log and retry via the job system; surface nothing scary to the user.

Hand-off

Reliable, typed email behind a service. background-jobs runs the actual send off the request path; observability-and-errors tracks failures.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.