c-stone-invoice-check/backend/tests/test_imap.py
Markus Kruse 937267b507 feat: Backend complete with IMAP, PDF processing, Alembic migrations
- FastAPI Backend mit Router (emails, invoices, auth)
- PostgreSQL DB Models (Invoice, EmailLog, InvoiceDetail, User)
- PyMuPDF PDF-Verarbeitung mit Steuer-Erkennung
- openpyxl Excel-Export
- Alembic Migration initialisiert
- IMAP-Verbindung zu Strato funktioniert
- Docker-Setup mit Traefik-Labels

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-24 23:45:51 +02:00

47 lines
1.6 KiB
Python

"""IMAP-Verbindungs-Test"""
import imaplib
import os
import email
IMAP_HOST = os.getenv("IMAP_HOST", "imap.strato.de")
IMAP_PORT = int(os.getenv("IMAP_PORT", 993))
IMAP_USER = os.getenv("IMAP_USER", "info@c-stone-dev.com")
IMAP_PASSWORD = os.getenv("IMAP_PASSWORD", "hH22761,018!")
print(f"Teste IMAP-Verbindung zu {IMAP_HOST}:{IMAP_PORT}")
print(f"Benutzer: {IMAP_USER}")
try:
mail = imaplib.IMAP4_SSL(IMAP_HOST, IMAP_PORT)
result, data = mail.login(IMAP_USER, IMAP_PASSWORD)
print(f"Login erfolgreich: {result}")
result, folders = mail.list()
print(f"Ordner:")
for folder in folders[:10]: # Erste 10 Ordner
print(f" {folder.decode()}")
# INBOX auswählen
result, data = mail.select("INBOX")
if result == "OK":
result, data = mail.search(None, 'ALL')
if result == "OK":
email_ids = data[0].split()
print(f"\nINBOX enthält {len(email_ids)} Emails")
# Letzte 5 Emails anzeigen
for email_id in email_ids[-5:]:
result, msg_data = mail.fetch(email_id, '(RFC822.HEADER)')
if result == "OK":
msg = email.message_from_bytes(msg_data[0][1])
subject = msg.get("Subject", "Kein Betreff")
from_addr = msg.get("From", "Unbekannt")
print(f" Email {email_id.decode()}: {from_addr} - {subject}")
mail.logout()
print("\n✅ IMAP-Verbindung erfolgreich!")
except imaplib.IMAP4.error as e:
print(f"❌ IMAP-Fehler: {e}")
except Exception as e:
print(f"❌ Fehler: {e}")