Pages
API Folder
sendEmail.js

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