add people n heor
This commit is contained in:
80
src/app/api/contact/route.ts
Normal file
80
src/app/api/contact/route.ts
Normal file
@@ -0,0 +1,80 @@
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
import nodemailer from 'nodemailer'
|
||||
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
const body = await request.json()
|
||||
const { firstName, lastName, email, phoneNumber, message } = body
|
||||
|
||||
// Validate required fields
|
||||
if (!firstName || !lastName || !email || !message) {
|
||||
return NextResponse.json(
|
||||
{ error: 'Missing required fields' },
|
||||
{ status: 400 }
|
||||
)
|
||||
}
|
||||
|
||||
// Create transporter using Gmail SMTP
|
||||
const transporter = nodemailer.createTransport({
|
||||
service: 'gmail',
|
||||
auth: {
|
||||
user: process.env.GMAIL_USER,
|
||||
pass: process.env.GMAIL_APP_PASSWORD,
|
||||
},
|
||||
})
|
||||
|
||||
// Email content
|
||||
const mailOptions = {
|
||||
from: process.env.GMAIL_USER,
|
||||
to: process.env.COMPANY_EMAIL || process.env.GMAIL_USER,
|
||||
subject: `New Contact Form Submission from ${firstName} ${lastName}`,
|
||||
html: `
|
||||
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
|
||||
<h2 style="color: #4f46e5;">New Contact Form Submission</h2>
|
||||
|
||||
<div style="background-color: #f8fafc; padding: 20px; border-radius: 8px; margin: 20px 0;">
|
||||
<h3 style="margin-top: 0; color: #374151;">Contact Information</h3>
|
||||
<p><strong>Name:</strong> ${firstName} ${lastName}</p>
|
||||
<p><strong>Email:</strong> <a href="mailto:${email}">${email}</a></p>
|
||||
${phoneNumber ? `<p><strong>Phone:</strong> ${phoneNumber}</p>` : ''}
|
||||
</div>
|
||||
|
||||
<div style="background-color: #f8fafc; padding: 20px; border-radius: 8px; margin: 20px 0;">
|
||||
<h3 style="margin-top: 0; color: #374151;">Message</h3>
|
||||
<p style="white-space: pre-wrap;">${message}</p>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #e5e7eb; color: #6b7280; font-size: 14px;">
|
||||
<p>This email was sent from the OurWorld contact form on ${new Date().toLocaleString()}.</p>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
text: `
|
||||
New Contact Form Submission
|
||||
|
||||
Name: ${firstName} ${lastName}
|
||||
Email: ${email}
|
||||
${phoneNumber ? `Phone: ${phoneNumber}` : ''}
|
||||
|
||||
Message:
|
||||
${message}
|
||||
|
||||
Sent on: ${new Date().toLocaleString()}
|
||||
`,
|
||||
}
|
||||
|
||||
// Send email
|
||||
await transporter.sendMail(mailOptions)
|
||||
|
||||
return NextResponse.json(
|
||||
{ message: 'Email sent successfully' },
|
||||
{ status: 200 }
|
||||
)
|
||||
} catch (error) {
|
||||
console.error('Error sending email:', error)
|
||||
return NextResponse.json(
|
||||
{ error: 'Failed to send email' },
|
||||
{ status: 500 }
|
||||
)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user