71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
|
|
const express = require('express')
|
|
var app = express();
|
|
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
const nodemailer = require("nodemailer");
|
|
|
|
async function sendEmail( nombre, correo, mensaje ) {
|
|
|
|
// Generate test SMTP service account from ethereal.email
|
|
// Only needed if you don't have a real mail account for testing
|
|
let testAccount = await nodemailer.createTestAccount();
|
|
|
|
// create reusable transporter object using the default SMTP transport
|
|
let transporter = nodemailer.createTransport({
|
|
service: "Gmail",
|
|
port: 587,
|
|
secure: false, // true for 465, false for other ports
|
|
auth: {
|
|
user: 'editoriales@acatlan.unam.mx', // generated ethereal user
|
|
pass: '3d1t0r14l35@2019'
|
|
},
|
|
});
|
|
|
|
// send mail with defined transport object
|
|
let info = await transporter.sendMail({
|
|
from: `${nombre} from ${correo} <${correo}>` , // sender address
|
|
to: `editoriales@acatlan.unam.mx`, // list of receivers
|
|
subject: "Contacto Portal Acatlan", // Subject line
|
|
text: `
|
|
Usuario: ${nombre}
|
|
Correo electrónico: ${correo}
|
|
|
|
${mensaje}
|
|
`, // plain text body
|
|
|
|
|
|
});
|
|
|
|
console.log("Message sent: %s", info.messageId);
|
|
// Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
|
|
|
|
// Preview only available when sending through an Ethereal account
|
|
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
|
|
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
|
|
}
|
|
|
|
|
|
app.post('/email', async function(request, response){
|
|
|
|
let {nombre} = request.body
|
|
let {correo} = request.body
|
|
let {mensaje} = request.body
|
|
|
|
try{
|
|
|
|
|
|
await sendEmail(nombre, correo, mensaje);
|
|
console.log('Email sent successfully');
|
|
response.status(200).json({error:false, msj: 'Correo enviado exitosamente'})
|
|
}
|
|
catch{
|
|
console.log(`error al mandar correo`);
|
|
response.status(400).json({error: true, msj: 'No se pudo enviar el correo'});
|
|
return;
|
|
}
|
|
});
|
|
|
|
module.exports = app;
|