presseportale/dev/rechtliches/nachweise/juli-mail-versand.md
Kevin Adametz 6c6015f960 dev: Nachweise gesichtet, Vertragsübersicht BN-06, Deploy-Notiz v1.9.1
Screenshots und Verträge geprüft und in nachweise/ zusammengeführt;
Binärdateien per .gitignore ausgeschlossen (vertraulich, Kunden- und
Organisationsnummern, Größe). Vertragsübersicht mit Fassungen, Daten und
Drittlandgrundlagen. Versandfassung: DPF-Status Cloudflare vom 13.10.2026,
OpenAI-DPA unterzeichnet am 13.10.2026. Juli-Zahlen auf Live bestätigt.
Protokollzeile v1.9.0 im Git-Deploy-Dokument.

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

2.6 KiB
Raw Permalink Blame History

Juli-Mails: Empfängerregel und Versandzahlen (BN-08)

Stand: 13.10.2026. Vorbelegt aus der lokalen Kopie der Live-Datenbank und am 13.10.2026 auf Live bestätigt (Befehl unten): Kampagne #1 sent, 10/10/0/0; Kampagne #2 sent, 970/954/5/11, Protokollzeilen 497 versendet und 3 fehlgeschlagen; Kampagne #3 Entwurf ohne Empfänger.

Empfängerregel

Die Regel steht in app/Services/Newsletter/CampaignRecipients.php. Sie gilt für beide Mails: aktive Konten mit E-Mail-Adresse, ohne Newsletter-Abmeldung. Dazu kommen je Mail die gespeicherten Filter:

Mail Filter laut Kampagne In einem Satz
#1 Bestandsvertrag legacy_contract: true, login: within, login_months: 12 Konten mit laufendem Bestandsvertrag (Zahlungsvereinbarung „grandfathered“) und Anmeldung in den letzten 12 Monaten.
#2 Aktive Konten login: between 0–12 Monate, exclude_campaign_id: 1 Konten mit Anmeldung in den letzten 12 Monaten, ohne die Empfänger von Mail #1.

Begründung (Betreiber, 13.10.2026): Die Beschränkung auf Konten mit Anmeldung in den letzten 12 Monaten war Absicht; die Filter wurden dafür gebaut. Konten ohne Anmeldung seit über einem Jahr gelten als nicht mehr genutzt und wurden nicht angeschrieben. Das gilt auch für Bestandsverträge ohne Anmeldung in diesem Zeitraum.

Anzahl

Mail Empfänger laut Kampagne versendet fehlgeschlagen übersprungen Einträge „E-Mail versendet“ im Aktivitätsverlauf
#1 10 10 0 0 11 (21.07.2026, 12:20–16:31)
#2 970 954 5 11 955 (22.07.2026, 10:35–19:34)

Auffälligkeiten, auf Live zu klären:

  • Bei Mail #1 gibt es einen Eintrag mehr im Aktivitätsverlauf als in der Kampagne. Wahrscheinlich eine Testmail um 12:20, vor dem eigentlichen Versand um 16:31.
  • Die Einzelprotokoll-Tabelle newsletter_campaign_recipients enthält zu Mail #2 nur 500 Zeilen (497 versendet, 3 fehlgeschlagen). Kampagnenzähler und Aktivitätsverlauf nennen dagegen rund 955.

Prüfung auf Live

php artisan tinker --execute '
foreach (App\Models\NewsletterCampaign::query()->orderBy("id")->get() as $c) {
    echo $c->id." | ".$c->status->value." | ".$c->subject." | total ".$c->recipients_total." | sent ".$c->sent_count." | failed ".$c->failed_count." | skipped ".$c->skipped_count." | ".$c->sent_at.PHP_EOL;
    echo "   Protokollzeilen: ".json_encode(DB::table("newsletter_campaign_recipients")->where("newsletter_campaign_id", $c->id)->selectRaw("status, count(*) n")->groupBy("status")->pluck("n", "status")).PHP_EOL;
}'

Gegenprobe im Admin: Berichte ▸ Aktivität, Typ „E-Mail“, Suche nach dem Betreff.