Fix email fetch reliability for large emails with attachments
- Add 120s IMAP socket timeout (was unlimited, could hang on large emails) - Increase Paperless upload timeout from 60s to 300s for large attachments - Increase manual poll UI timeout from 60s to 300s - Show error count in UI when emails fail to process - Log warning when attachment payload is empty/corrupted Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -695,14 +695,22 @@ def email_eingang_poll_trigger(request):
|
||||
try:
|
||||
# Synchron ausführen für sofortiges Feedback; sucht auch bereits
|
||||
# gelesene E-Mails der letzten 30 Tage (Duplikate werden übersprungen).
|
||||
result = poll_destinataer_emails.apply(kwargs={"search_all_recent_days": 30}).get(timeout=60)
|
||||
result = poll_destinataer_emails.apply(kwargs={"search_all_recent_days": 30}).get(timeout=300)
|
||||
processed = result.get("processed", 0) if isinstance(result, dict) else 0
|
||||
if result and result.get("status") == "skipped":
|
||||
messages.warning(request, "IMAP ist nicht konfiguriert. Bitte Einstellungen unter Administration → E-Mail / IMAP prüfen.")
|
||||
elif processed > 0:
|
||||
messages.success(request, f"{processed} neue E-Mail(s) importiert.")
|
||||
error_count = result.get("errors", 0) if isinstance(result, dict) else 0
|
||||
if error_count > 0:
|
||||
messages.warning(request, f"{processed} E-Mail(s) importiert, aber {error_count} Fehler aufgetreten. Bitte Logs prüfen.")
|
||||
else:
|
||||
messages.success(request, f"{processed} neue E-Mail(s) importiert.")
|
||||
else:
|
||||
messages.info(request, "Keine neuen E-Mails gefunden.")
|
||||
error_count = result.get("errors", 0) if isinstance(result, dict) else 0
|
||||
if error_count > 0:
|
||||
messages.warning(request, f"Keine neuen E-Mails importiert, aber {error_count} Fehler aufgetreten. Bitte Logs prüfen.")
|
||||
else:
|
||||
messages.info(request, "Keine neuen E-Mails gefunden.")
|
||||
except Exception as exc:
|
||||
messages.error(request, f"Fehler beim E-Mail-Abruf: {exc}")
|
||||
return redirect("stiftung:email_eingang_list")
|
||||
|
||||
Reference in New Issue
Block a user