mailtrap-email-integrationlisted
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}`;