sendEmail.js
En este endpoint se llama las constantes y la libreria de google. Con
const { google } = require("googleapis");
// Constantes para el envio de correos
// -- En este archivo se tienen distintos objetos
// --> Primer objeto son las llaves para la api
// --> El segundo este se supone que son las opciones para el correo
const CONSTANTS = require("../../utils/constants");
Luego con estos valores se va a crear nuestro cliente OAuth2 el cual se hace de la siguiente manera:
const { google } = require("googleapis");
// Constantes para el envio de correos
// -- En este archivo se tienen distintos objetos
// --> Primer objeto son las llaves para la api
// --> El segundo este se supone que son las opciones para el correo
const CONSTANTS = require("../../utils/constants");
Entonces se colocan las credenciales con este cliente que necesite el refresh token.
Ya con esta instancia se crear el transportador con las constantes y los clientes hecho.
A la hora de enviar el correo se obtiene el cuerpo del correo y se checa los diferentes valores para ver si es asistencia o no. Esto para agregar el QR:
if (req.body.asistencia === true) {
console.log("Asistencia");
// Concatenar el codigo QR al email body
emailbody = emailbody.concat(
`<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td style="padding-right: 0px;padding-left: 0px;" align="center">
<h3>QR para registrar la asistencia</h3>
<img align="center" border="0" src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=http://eventos-poli-nxt-f1gq.vercel.app/eventos/${req.body.idevent}/${req.body.codigo}/asistencia" alt="" title="" style="outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;clear: both;display: inline-block !important;border: none;height: auto;float: none;width: 100%;max-width: 150px;" width="150px" class="v-src-width v-src-max-width"/>
<p>Si es que no puedes llevar el codigo QR, pide que registren tu asistencia manualmente en la tabla de asistencias del evento</p>
</td>
</tr>
</table>`
);
}
Ya con esto se envia el correo
const result = await transporter.sendMail({
from: '[Correo]',
to: data.email,
subject: `Correo numero: ${JSON.stringify(
req.body.index
)} - Correo con codigo QR y archivo PDF,`,
text: `Correo de prueba num: ${JSON.stringify(req.body.index)}`,
html: emailbody,
// attachments: [
// {
// // use URL as an attachment
// filename: 'Enredate 2022 - Poli Matute.pdf',
// path: 'https://cmfgizrlvhyyohonwpny.supabase.co/storage/v1/object/public/fotografiaseventos/Untitled%20folder/informacion_enredate-2022_compressed.pdf',
// },
// ],
});
```
Last updated on December 21, 2022