vulnerabilyties fixed

This commit is contained in:
2025-03-08 00:56:14 -06:00
parent 269289605f
commit 18cc0d596c
4 changed files with 637 additions and 117 deletions
+30 -18
View File
@@ -1,35 +1,47 @@
import * as fs from 'fs';
import * as XLSX from 'xlsx';
import * as ExcelJS from 'exceljs';
import { Injectable } from '@nestjs/common';
@Injectable()
export class ExcelService {
readEmailsFromExcel(filePath: string): string[] {
console.log(` Verificando archivo en: ${filePath}`);
async readEmailsFromExcel(filePath: string): Promise<string[]> {
if (!fs.existsSync(filePath)) {
console.error(' Archivo Excel NO encontrado');
throw new Error('Archivo Excel no encontrado');
} else {
console.log('Archivo Excel encontrado');
}
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.readFile(filePath); // 🔹 `await` para leer el archivo correctamente
const worksheet = workbook.getWorksheet(1); // Obtiene la primera hoja
if (!worksheet) {
throw new Error(' No se encontró ninguna hoja en el archivo.');
}
const workbook = XLSX.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const sheet = workbook.Sheets[sheetName];
const jsonData: any[] = [];
const jsonData = XLSX.utils.sheet_to_json(sheet);
console.log(`Datos extraídos:`, jsonData);
// 🔹 Iterar sobre las filas y extraer datos
worksheet.eachRow((row, rowNumber) => {
if (rowNumber === 1) return; // Ignorar encabezado
// Extraer correos de la columna "Correo"
const rowData = {
Correo: row.getCell(1).value, // Ajusta el índice según tu archivo
};
jsonData.push(rowData);
});
console.log(` Datos extraídos:`, jsonData);
// 🔹 Extraer correos de la columna "Correo"
const emails = jsonData
.map((row: any) => row['Correo'])
.filter(email => email);
.map(row => row.Correo)
.filter(email => typeof email === 'string');
console.log(` Correos extraídos:`, emails);
console.log(` Correos extraídos:`, emails);
return emails;
}
+1 -1
View File
@@ -36,7 +36,7 @@ export class MailController {
const emails=this.excelService.readEmailsFromExcel('./src/excel_Usuarios/usuarios_fake.xlsx');
let fechaActual: Date = new Date();
for (const email of emails) {
for (const email of await emails) {
try {
await this.mailService.sendMail(email, "subject", "text", fechaActual);
console.log(`📧 Enviado a: ${email}`);