← ClaudeAtlas

mailtrap-email-integrationlisted

Use when implementing transactional email sending via the Mailtrap Email API or debugging non-delivery in dev/staging. Covers the exact production and sandbox send endpoints, Bearer auth, request payload shape, and the sandbox-vs-production routing pattern.
Mixard/fable-pack · ★ 1 · AI & Automation · score 74
Install: claude install-skill Mixard/fable-pack
# Mailtrap Email Integration Mailtrap has two separate sending surfaces: - **Production**: `https://send.api.mailtrap.io/api/send` — delivers to real recipients; requires a DNS-verified sending domain (SPF, DKIM, DMARC). Sending before verification completes fails silently or lands in spam. - **Sandbox**: `https://sandbox.api.mailtrap.io/api/send/{inbox_id}` — captures emails without delivering them; use for dev/staging so test emails never reach real inboxes. Authentication is a Bearer token in the `Authorization` header. Tokens are scoped per project; sandbox and production use different tokens — keep them in separate environment variables. ## Send Request ```typescript async function sendEmail(to: string, subject: string, html: string) { const response = await fetch("https://send.api.mailtrap.io/api/send", { method: "POST", headers: { "Authorization": `Bearer ${process.env.MAILTRAP_API_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({ from: { email: "no-reply@yourverifieddomain.com", name: "Your App" }, to: [{ email: to }], subject, html, }), }); if (!response.ok) { throw new Error(`Email send failed: ${response.status}`); } return response.json(); } ``` ## Environment Routing ```typescript const MAILTRAP_ENDPOINT = process.env.NODE_ENV === "production" ? "https://send.api.mailtrap.io/api/send" : `https://sandbox.api.mailtrap.io/api/send/${process.env.MAILTRAP_INBOX_ID}`;