presseportale/config/newsletter.php
Kevin Adametz c82f279fef press-releases/jobs: Scheduler respektiert manuelle Prüfung und kommt an Blockaden vorbei, Newsletter-Versand per Schalter gesperrt, kurze Scheduler-Sperren (Umsetzungsaudit 29.09.: K-01, K-02, K-05, K-06, K-09, E9, OPT-8, OPT-9; 02.10.: O06)
- K-01: publish-scheduled filtert manual_review_required_at; publish() prüft
  für ki/scheduler unter der Sperre (ManualReviewRequiredException)
- K-02: Kontingent- und Bildsperre sind fachliche Ausgänge (Exit 0, einmaliger
  Verlaufseintrag); KI-Job ohne Retry bei Bildsperre
- O06: Kandidaten per Cursor (scheduled_at, id), Limit zählt bearbeitete
  Meldungen, Blockaden nur ein Scan-Budget
- K-05: KI-Job lädt vor dem Routing neu, überholter Status ohne Retry; backoff
- K-06: Admin-Aktionen mit Permission-Prüfung und Fehlermeldung statt 500
- K-09: withoutOverlapping() mit kurzer Sperrdauer, purge-events 03:50,
  neuer Wochenlauf press-release-images:sweep-orphan-originals (So 04:45)
- E9: NEWSLETTER_SENDING_ENABLED (Standard aus) sperrt Start, Resume und Job
- OPT-9: ExpireGrandfathering prüft die Queue-Voraussetzung aus E18

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 13:09:00 +00:00

30 lines
1.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
return [
/*
* Kampagnen-Versand (E9, Umsetzungsaudit 29.09.2026): Standard aus, bis
* U05–U07 umgesetzt sind. Solange aus, verweigern CampaignSender::start(),
* die Admin-UI, `newsletter:resume` und bereits eingereihte Versand-Jobs
* den Versand. Abmeldung, Sperrliste und Test-Mails sind nicht betroffen.
*/
'sending_enabled' => (bool) env('NEWSLETTER_SENDING_ENABLED', false),
'sync' => [
'enabled' => env('NEWSLETTER_SYNC_ENABLED', false),
'provider' => env('NEWSLETTER_SYNC_PROVIDER', 'placeholder'),
'endpoint' => env('NEWSLETTER_SYNC_ENDPOINT'),
'api_key' => env('NEWSLETTER_SYNC_API_KEY'),
'timeout' => (int) env('NEWSLETTER_SYNC_TIMEOUT', 10),
],
/*
* Drosselung des Kampagnen-Versands: Mails gehen in Wellen von
* `batch_size` Stück im Abstand von `batch_interval_minutes` raus,
* damit der SMTP-Provider (All-Inkl) nicht limitiert und die Domain
* nicht auf Spam-/Blocklisten landet.
*/
'campaign' => [
'batch_size' => (int) env('NEWSLETTER_CAMPAIGN_BATCH_SIZE', 50),
'batch_interval_minutes' => (int) env('NEWSLETTER_CAMPAIGN_BATCH_INTERVAL_MINUTES', 15),
],
];