se termina la descarga de los adjuntos y solo se deja los mails con adjuntos pdf y xml
This commit is contained in:
1 parent
0855948192
commit
937c4d6260
4 files changed
+68
-31
No files matched your search
+33
-18
@@ -28,26 +28,41 @@ def quitar_correos_ya_registrados_en_base_de_datos(emails):
|
||||
########################################################
|
||||
def descomprimir_adjuntos(emails, ruta):
|
||||
"""
|
||||
Esta funcion recibe la lista de emails y por cada no recorre sus adjuntos
|
||||
si encuentra un adjunto .zip lo descomprime en la ruta especificada
|
||||
y actualiza la lista de archivos agregar estos nuevos documentos al lsitado de adjuntos del email
|
||||
Busca adjuntos ZIP, los descomprime y agrega los archivos
|
||||
extraídos a la lista de adjuntos del correo.
|
||||
"""
|
||||
archivos_finales = []
|
||||
for archivo in archivos:
|
||||
ruta_archivo = os.path.join(ruta, archivo)
|
||||
if archivo.lower().endswith('.zip') and os.path.exists(ruta_archivo):
|
||||
try:
|
||||
with zipfile.ZipFile(ruta_archivo, 'r') as zip_ref:
|
||||
nombres_extraidos = zip_ref.namelist()
|
||||
zip_ref.extractall(ruta)
|
||||
archivos_finales.extend(nombres_extraidos)
|
||||
except Exception as e:
|
||||
print(f" ⚠️ Error descomprimiendo {archivo}: {e}")
|
||||
archivos_finales.append(archivo)
|
||||
else:
|
||||
archivos_finales.append(archivo)
|
||||
return archivos_finales
|
||||
|
||||
try:
|
||||
for email in emails:
|
||||
nuevos_adjuntos = []
|
||||
for adjunto in list(email["adjuntos"]):
|
||||
if not adjunto.lower().endswith(".zip"):
|
||||
continue
|
||||
ruta_zip = os.path.join(ruta, adjunto)
|
||||
if not os.path.exists(ruta_zip):
|
||||
print(f"⚠️ No existe: {ruta_zip}")
|
||||
continue
|
||||
try:
|
||||
with zipfile.ZipFile(ruta_zip, "r") as zip_ref:
|
||||
nombres_extraidos = [
|
||||
nombre
|
||||
for nombre in zip_ref.namelist()
|
||||
if not nombre.endswith("/")
|
||||
]
|
||||
zip_ref.extractall(ruta)
|
||||
nuevos_adjuntos.extend(nombres_extraidos)
|
||||
print(
|
||||
f"📦 {adjunto}: {len(nombres_extraidos)} archivos extraídos"
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ Error descomprimiendo {adjunto}: {e}")
|
||||
email["adjuntos"].extend(nuevos_adjuntos)
|
||||
return emails
|
||||
except Exception as ex:
|
||||
print(f"❌ Error general: {ex}")
|
||||
return emails
|
||||
|
||||
########################################################
|
||||
def filtrar_archivos_validos(archivos):
|
||||
|
||||
|
||||
Reference in new issue
Block a user