import imaplib import email import os # ===== Beállítások ===== IMAP_SERVER = "imap.szervered.hu" IMAP_PORT = 993 USERNAME = "felhasznalo@domain.hu" PASSWORD = "jelszo" DOWNLOAD_DIR = r"C:\Downloads" PROCESSED_FOLDER = "fertig" # almappa neve az INBOX-ban # Letöltési mappa létrehozása, ha nem létezik if not os.path.exists(DOWNLOAD_DIR): os.makedirs(DOWNLOAD_DIR) # IMAP csatlakozás mail = imaplib.IMAP4_SSL(IMAP_SERVER, IMAP_PORT) mail.login(USERNAME, PASSWORD) # Beérkezett üzenetek mappa kiválasztása mail.select("INBOX") # Minden levél ID-jának lekérése status, messages = mail.search(None, "ALL") if status != "OK": print("Nem sikerült lekérni az üzeneteket.") mail.logout() exit() # Ellenőrizzük, hogy létezik-e a 'fertig' mappa, ha nem, létrehozzuk mail.create(PROCESSED_FOLDER) # Minden levél feldolgozása for num in messages[0].split(): status, data = mail.fetch(num, "(RFC822)") if status != "OK": print(f"Hiba az {num} üzenet letöltésekor.") continue msg = email.message_from_bytes(data[0][1]) pdf_found = False for part in msg.walk(): if part.get_content_type() == "application/pdf": filename = part.get_filename() if filename: filepath = os.path.join(DOWNLOAD_DIR, filename) with open(filepath, "wb") as f: f.write(part.get_payload(decode=True)) print(f"Letöltve: {filepath}") pdf_found = True # Ha volt PDF, akkor a levelet áthelyezzük a 'fertig' mappába if pdf_found: result = mail.copy(num, PROCESSED_FOLDER) if result[0] == "OK": mail.store(num, "+FLAGS", "\\Deleted") mail.expunge() print(f"Levél áthelyezve a '{PROCESSED_FOLDER}' mappába.") # Kapcsolat bontása mail.close() mail.logout()