mirror of
https://github.com/Ravinou/borgwarehouse
synced 2024-06-04 15:02:48 +02:00
49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
//Lib
|
|
import { authOptions } from '../auth/[...nextauth]';
|
|
import { unstable_getServerSession } from 'next-auth/next';
|
|
import nodemailerSMTP from '../../../helpers/functions/nodemailerSMTP';
|
|
import emailTest from '../../../helpers/templates/emailTest';
|
|
|
|
export default async function handler(req, res) {
|
|
if (req.method == 'POST') {
|
|
//Verify that the user is logged in.
|
|
const session = await unstable_getServerSession(req, res, authOptions);
|
|
if (!session) {
|
|
res.status(401).json({ message: 'You must be logged in.' });
|
|
return;
|
|
}
|
|
|
|
//Create the SMTP Transporter
|
|
const transporter = nodemailerSMTP();
|
|
|
|
//Mail options
|
|
const mailData = emailTest(session.user.email, session.user.name);
|
|
|
|
//Send mail
|
|
try {
|
|
transporter.sendMail(mailData, function (err, info) {
|
|
if (err) {
|
|
console.log(err);
|
|
res.status(400).json({
|
|
message:
|
|
'An error occured while sending the email : ' + err,
|
|
});
|
|
return;
|
|
} else {
|
|
console.log(info);
|
|
res.status(200).json({
|
|
message: 'Mail successfully sent.',
|
|
});
|
|
return;
|
|
}
|
|
});
|
|
} catch (err) {
|
|
console.log(err);
|
|
res.status(500).json({
|
|
status: 500,
|
|
message: 'API error, contact the administrator.',
|
|
});
|
|
}
|
|
}
|
|
}
|