15 lines
1.1 KiB
TypeScript
15 lines
1.1 KiB
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
export const runtime = "nodejs";
|
|
export async function POST(req: NextRequest){
|
|
try{
|
|
const body = await req.json();
|
|
const name=(body.name||"").toString().trim(); const email=(body.email||"").toString().trim(); const message=(body.message||"").toString().trim();
|
|
if(!name||!email||!message) return NextResponse.json({ok:false,error:"Missing fields."},{status:400});
|
|
const TO=process.env.CONTACT_TO_EMAIL, FROM=process.env.CONTACT_FROM_EMAIL, KEY=process.env.RESEND_API_KEY;
|
|
if(!TO||!FROM||!KEY) return NextResponse.json({ok:false,error:"Server not configured."},{status:500});
|
|
const res=await fetch("https://api.resend.com/emails",{method:"POST",headers:{Authorization:`Bearer ${KEY}`,"Content-Type":"application/json"},body:JSON.stringify({from:FROM,to:[TO],subject:`New inquiry from ${name}`,text:`From: ${name} <${email}>\n\n${message}`})});
|
|
if(!res.ok) return NextResponse.json({ok:false,error:"Email send failed."},{status:502});
|
|
return NextResponse.json({ok:true});
|
|
}catch{ return NextResponse.json({ok:false,error:"Unexpected."},{status:500}); }
|
|
}
|