For the complete documentation index, see llms-docs.txt or the site index llms.txt. Full docs corpus: llms-full-docs.txt. Prefer the markdown version of this page at /docs/examples/nodejs/nextjs.md. Product capabilities: skill.md. Docs MCP: /docs/mcp. Site MCP: /mcp.
Send Email with Next.js
Send transactional email from Next.js App Router with the Reloop Node.js SDK, covering Server Actions and Route Handlers, install, env setup, and full examples.
Installation
npm install reloop-email
Setup environment variables
Add your Reloop API key to .env.local (server-only; do not use NEXT_PUBLIC_):
RELOOP_API_KEY=rl_your_api_key_here
Shared client
// lib/reloop.ts
import { Reloop } from "reloop-email";
export const reloop = new Reloop({
apiKey: process.env.RELOOP_API_KEY!,
});
Route Handler
// app/api/send-email/route.ts
import { NextResponse } from "next/server";
import { reloop } from "@/lib/reloop";
export async function POST(request: Request) {
try {
const { to, subject, html, text } = await request.json();
const { response, emailError } = await reloop.mail.send({
from: "Acme <onboarding@mail.yourdomain.com>",
to,
subject: subject ?? "Hello from Next.js",
html: html ?? "<p>Congrats on sending your first email via Reloop!</p>",
text: text ?? "Congrats on sending your first email via Reloop!",
});
if (emailError) {
return NextResponse.json({ error: emailError }, { status: 502 });
}
return NextResponse.json(response);
} catch (error) {
return NextResponse.json({ error }, { status: 500 });
}
}
Server Action
// app/actions/send-email.ts
"use server";
import { reloop } from "@/lib/reloop";
export async function sendWelcomeEmail(email: string) {
const { response, emailError } = await reloop.mail.send({
from: "Acme <onboarding@mail.yourdomain.com>",
to: email,
subject: "Welcome",
html: "<p>Thanks for signing up.</p>",
text: "Thanks for signing up.",
});
if (emailError) {
return { ok: false as const, error: "Failed to send" };
}
return { ok: true as const, messageId: response?.messageId };
}
Full guide
For forms, auth, Edge runtime, Vercel deploy, and a full comparison of Server Actions vs Route Handlers, see the blog post: How to Send Email in Next.js App Router.
Was this page helpful?