Next.js App Router Integration Guide

Use MailPort inside Next.js app/api/send/route.ts route handlers:

import { NextResponse } from 'next/server';
import { createMailer, smtp } from 'mailport';

const mailer = createMailer({
  transport: smtp({
    host: process.env.SMTP_HOST!,
    port: 587,
    auth: {
      user: process.env.SMTP_USER!,
      pass: process.env.SMTP_PASSWORD!,
    },
  }),
});

export async function POST(request: Request) {
  const { to, subject, text } = await request.json();

  const result = await mailer.send({
    from: process.env.SMTP_FROM || 'noreply@example.com',
    to,
    subject,
    text,
  });

  return NextResponse.json({ id: result.id, status: result.status });
}