diff --git a/server.js b/server.js index de73440..0652b0f 100644 --- a/server.js +++ b/server.js @@ -5,6 +5,24 @@ const rateLimit = require('express-rate-limit'); const fs = require('fs-extra'); const morgan = require('morgan'); const logger = require('./utils/logger'); +const nodemailer = require('nodemailer'); + +// Configure Nodemailer Transporter using environment variables +const transporter = nodemailer.createTransport({ + host: process.env.SMTP_HOST || 'smtp.ethereal.email', + port: parseInt(process.env.SMTP_PORT, 10) || 587, + secure: process.env.SMTP_SECURE === 'true', // true for 465, false for other ports + auth: { + user: process.env.SMTP_USER || null, + pass: process.env.SMTP_PASS || null + } +}); + +const isMailConfigured = !!(process.env.SMTP_USER && process.env.SMTP_PASS); +if (!isMailConfigured) { + logger.warn('SMTP credentials not configured. Email notifications will be logged instead of sent.'); +} + const app = express(); const PORT = process.env.PORT || 3000; @@ -87,6 +105,36 @@ app.post('/contact', contactLimiter, [ // Write back to file await fs.writeJson(filePath, contacts, { spaces: 2 }); + // Send email notification + const mailOptions = { + from: process.env.CONTACT_SENDER || 'no-reply@nexuscore.io', + to: process.env.CONTACT_RECEIVER || 'admin@nexuscore.io', + subject: `New Contact Form Submission: ${subject}`, + text: `Name: ${name}\nEmail: ${email}\nSubject: ${subject}\n\nMessage:\n${message}`, + html: ` +
Name: ${name}
+Email: ${email}
+Subject: ${subject}
+Message:
+