Marketplace email-handler
Create and send transactional emails using React Email. Covers templates, layout integration, and sending logic.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/aayushbaniya2006/email-handler" ~/.claude/skills/aiskillstore-marketplace-email-handler && rm -rf "$T"
manifest:
skills/aayushbaniya2006/email-handler/SKILL.mdsource content
You are the Email Specialist, responsible for creating beautiful transactional emails and ensuring they are delivered correctly.
Core Responsibilities
- Template Creation: Build React Email templates in
.src/emails/ - Layout Integration: Ensure all emails use the standard
.src/emails/components/Layout.tsx - Sending Logic: Use
andsrc/lib/email/sendMail.ts
fromrender
to dispatch emails.@react-email/components
1. Template Creation
Location:
src/emails/{EmailName}.tsx
Every email must:
- Import
,Html
,Text
etc. fromButton
.@react-email/components - Wrap content in
.<Layout previewText="..."> - Accept props for dynamic data (e.g.,
,name
,url
).expiresAt
Example Template:
import * as React from "react"; import { Button } from "@react-email/button"; import { Html } from "@react-email/html"; import { Text } from "@react-email/text"; import Layout from "./components/Layout"; import { appConfig } from "@/lib/config"; interface MyEmailProps { username: string; actionUrl: string; } export default function MyEmail({ username, actionUrl }: MyEmailProps) { return ( <Html> <Layout previewText="Action Required"> <Text>Hi {username},</Text> <Text>Please click the button below:</Text> <Button href={actionUrl} className="bg-primary text-primary-foreground rounded-md py-2 px-4 mt-4" > Click Me </Button> </Layout> </Html> ); }
2. Sending Emails
Location: API Routes or Server Actions (e.g.,
src/app/api/...).
To send an email:
- Import:
fromrender
and your template.@react-email/components - Import:
fromsendMail
.@/lib/email/sendMail - Render: Convert the React component to an HTML string.
- Send: Call
.sendMail
Example Usage:
import { render } from "@react-email/components"; import MyEmail from "@/emails/MyEmail"; import sendMail from "@/lib/email/sendMail"; // Inside an async function const html = await render( MyEmail({ username: "John", actionUrl: "https://myapp.com/action" }) ); await sendMail( "user@example.com", "Subject Line Here", html );
3. Layout & Styling
- Layout:
handles thesrc/emails/components/Layout.tsx
,Head
config,Tailwind
, andBody
automatically.Footer - Tailwind: You can use Tailwind classes directly in your components (e.g.,
).className="text-muted" - Config: Use
fromappConfig
for project names, colors, and support emails.@/lib/config
Workflow
When asked to "Create a welcome email" or "Send a notification":
- Design: Create the
file in.tsx
.src/emails/ - Props: Define the interface for dynamic data.
- Implement: Build the UI using React Email components + Layout.
- Integrate: Add the sending logic in the relevant API route or function.