34 lines
No EOL
1.2 KiB
JavaScript
34 lines
No EOL
1.2 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const express_1 = require("express");
|
|
const zod_1 = require("zod");
|
|
const nodemailer_1 = __importDefault(require("nodemailer"));
|
|
const router = (0, express_1.Router)();
|
|
const emailSchema = zod_1.z.object({
|
|
name: zod_1.z.string().min(1),
|
|
email: zod_1.z.string().email(),
|
|
message: zod_1.z.string().min(1),
|
|
});
|
|
router.post('/sendEmail', async (req, res) => {
|
|
const { name, email, message } = emailSchema.parse(req.body);
|
|
const transporter = nodemailer_1.default.createTransport({
|
|
service: 'gmail',
|
|
auth: {
|
|
user: process.env.GOOGLE_EMAIL,
|
|
pass: process.env.GOOGLE_APP_PASSWORD,
|
|
},
|
|
});
|
|
await transporter.sendMail({
|
|
from: process.env.GOOGLE_EMAIL,
|
|
to: process.env.CONTACT_EMAIL ?? process.env.GOOGLE_EMAIL,
|
|
subject: `MCDi Contact Form: ${name}`,
|
|
text: `From: ${name} <${email}>\n\n${message}`,
|
|
replyTo: email,
|
|
});
|
|
res.json({ success: true });
|
|
});
|
|
exports.default = router;
|
|
//# sourceMappingURL=email.js.map
|