diff --git a/app/api/email/route.tsx b/app/api/email/route.tsx index d2a3ea7..1977aa4 100644 --- a/app/api/email/route.tsx +++ b/app/api/email/route.tsx @@ -1,75 +1,64 @@ -import {type NextRequest, NextResponse} from 'next/server'; +import { type NextRequest, NextResponse } from "next/server"; import nodemailer from "nodemailer"; import SMTPTransport from "nodemailer/lib/smtp-transport"; import Mail from "nodemailer/lib/mailer"; -import dotenv from 'dotenv'; +import dotenv from "dotenv"; dotenv.config(); export async function POST(request: NextRequest) { - const {email, name, message} = await request.json(); + const { email, name, message } = await request.json(); - const user = process.env.MY_EMAIL ?? ''; - const pass = process.env.MY_PASSWORD ?? ''; + const user = process.env.MY_EMAIL ?? ""; + const pass = process.env.MY_PASSWORD ?? ""; - if (!user || !pass) { - console.error('Missing email or password environment variables'); - return NextResponse.json({error: 'Internal server error'}, {status: 500}); - } + if (!user || !pass) { + console.error("Missing email or password environment variables"); + return NextResponse.json( + { error: "Internal server error" }, + { status: 500 }, + ); + } - const transportOptions: SMTPTransport.Options = { - host: "smtp.ionos.de", - port: 587, - secure: false, - requireTLS: true, - auth: { - type: 'login', - user, - pass - }, - }; + const transportOptions: SMTPTransport.Options = { + host: "smtp.ionos.de", + port: 587, + secure: false, + requireTLS: true, + auth: { + type: "login", + user, + pass, + }, + }; - const transport = nodemailer.createTransport(transportOptions); + const transport = nodemailer.createTransport(transportOptions); - const mailOptions: Mail.Options = { - from: user, - to: user, // Ensure this is the correct email address - subject: `Message from ${name} (${email})`, - text: message + `\n\nSent from ${email}`, - }; + const mailOptions: Mail.Options = { + from: user, + to: user, // Ensure this is the correct email address + subject: `Message from ${name} (${email})`, + text: message + `\n\nSent from ${email}`, + }; - const returnMail: Mail.Options = { - from: user, - to: email, - subject: `DKI - Received your message`, - text: `Hello ${name},\n\nThank you for your message. I will get back to you as soon as possible.\n\nBest regards,\nDennis Konkol`, - }; + const sendMailPromise = () => + new Promise((resolve, reject) => { + transport.sendMail(mailOptions, function (err, info) { + if (!err) { + console.log("Email sent:", info.response); + resolve(info.response); + } else { + console.error("Error sending email:", err); + reject(err.message); + } + }); + }); - const sendMailPromise = () => - new Promise((resolve, reject) => { - transport.sendMail(mailOptions, function (err, info) { - if (!err) { - console.log('Email sent:', info.response); - resolve(info.response); - } else { - console.error('Error sending email:', err); - reject(err.message); - } - }); - transport.sendMail(returnMail, function (err, info) { - if (err) { - console.error('Error sending return email:', err); - } else { - console.log('Return email sent:', info.response); - } - }); - }); - - try { - await sendMailPromise(); - return NextResponse.json({message: 'Email sent'}); - } catch (err) { - console.error('Error sending email:', err); - return NextResponse.json({error: err}, {status: 500}); - } -} \ No newline at end of file + try { + await sendMailPromise(); + return NextResponse.json({ message: "Email sent" }); + } catch (err) { + console.error("Error sending email:", err); + return NextResponse.json({ error: err }, { status: 500 }); + } +}