Descargar los archivos adjuntos recibidos durante los últimos 5 días en Python.
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown
Soy bastante nuevo en Python. Aquí hay un código funcional que estoy usando, pero ¿cómo puedo agregar un filtro en el que solo se escaneen y descarguen los archivos adjuntos de correo electrónico de los últimos 5 días?
¡Gracias de antemano!
import os
from imbox import Imbox # pip install imbox
import traceback
import datetime
host = "imap.gmail.com"
username = "miemail@gmail.com"
password = '*******'
download_folder = "mi/directorio/existente"
if not os.path.isdir(download_folder):
os.makedirs(download_folder, exist_ok=True)
mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False)
# messages = mail.messages() # por defecto en la bandeja de entrada
for (uid, message) in messages:
mail.mark_seen(uid) # opcional, marca el mensaje como leído
for idx, attachment in enumerate(message.attachments):
try:
att_fn = attachment.get('filename')
download_path = f"{download_folder}/{att_fn}"
print(download_path)
with open(download_path, "wb") as fp:
fp.write(attachment.get('content').read())
except:
pass
print(traceback.print_exc())
mail.logout()
davy.ai
Para filtrar solo los adjuntos de correo electrónico de los últimos 5 días, puede modificar el bucle for para incluir una verificación de la fecha de cada correo electrónico. En primer lugar, puede calcular la fecha de hace 5 días utilizando el módulo datetime:
Luego, puede modificar la variable messages para solo recuperar mensajes desde esa fecha:
Finalmente, puede continuar con el resto del script como antes para descargar los adjuntos de estos mensajes filtrados.