import nodemailer from "nodemailer"; import { NextResponse } from "next/server"; import { db } from "@/lib/db"; import { randomUUID } from "crypto"; import getURL from "@/lib/utils"; export async function POST(req: Request) { const { email} = await req.json(); const transporter = nodemailer.createTransport({ service: 'gmail', host: 'smtp.gmail.com', auth: { user: process.env.NODEMAIL_MAIL, pass: process.env.NODEMAIL_PW, }, }); const user = await db.user.findFirst({ where: { email: email } }); const token = await db.activationToken.create({ data: { token: `${randomUUID()}${randomUUID()}`.replace(/-/g, ''), userId: user?.id! }, }); const mailData = { from: process.env.NODEMAIL_MAIL, to: email, subject: ` 'Password Reset for your GameUnity account`, html: `Hello ${user?.name} you requeste a password reset. \nPlease follow the Link: ${getURL(`/api/verification/${token.token}`)} to change your password.`, }; let emailRes; try { emailRes = await transporter.sendMail(mailData); console.log("Message sent", emailRes.messageId); } catch (err) { console.log(err); console.error("Error email could not be send"); } console.log(emailRes?.messageId) return NextResponse.json({ success: true, messageId: emailRes?.messageId }); }