Zum Inhalt

DiveLogix360 – Nachweis Hostpoint-Mailversand UC00 vom 10.10.2026

Stand: 14.10.2026 09:17 Branch: main Status: Aktiv

Änderungshistorie anzeigen


Zweck: Überprüfbarer Nachweis für die technische Hostpoint-Konfiguration gemäss ADR-016 und die Kriterien UC00-08-54, UC00-08-35, UC00-08-55 und UC00-09-32 der UC00-Abschlusscheckliste.
Abgrenzung: Dieser Nachweis belegt nur die am 10.10.2026, 12.10.2026 und 14.10.2026 geprüften Stände in der Entwicklungsumgebung. Er ersetzt weder die vertragliche und datenschutzrechtliche Produktivfreigabe (UC00-07-12) noch die Aktivierung und Überwachung der Bounce-Verarbeitung im produktiven Betrieb.

Geprüfte Domain und Postfächer

Element Wert
Domain divelogix360.ch
DNS-Provider Hostpoint AG (ns.hostpoint.ch, ns2.hostpoint.ch, ns3.hostpoint.ch)
SMTP-Server asmtp.mail.hostpoint.ch, Port 587, STARTTLS
Absenderadresse noreply@divelogix360.ch
Envelope-Absender (Return-Path) bounces@divelogix360.ch
Entwicklungsempfänger (Catch-All) dev@divelogix360.ch
DMARC-Berichte (rua, seit 12.10.2026) dmarc@divelogix360.ch, eigenes Postfach

Zugangsdaten werden ausschliesslich in der lokalen, nicht versionierten backend/.env geführt und sind nicht Bestandteil dieses Nachweises.

1. SMTP-Laufzeitprüfung

Prüfpunkt Ergebnis
Prüfwerkzeug backend/scripts/test-smtp.ts (Commit 88308e5)
Ausführung Lokal durch David Mittig mit NODE_ENV=development am 10.10.2026
STARTTLS-Hochstufung (requireTLS) Erfolgreich
Zertifikatsprüfung (rejectUnauthorized, mindestens TLS 1.2) Erfolgreich
SMTP-Authentifizierung Erfolgreich
Zustellung an dev@divelogix360.ch Bestätigt

Ein Eintrag im Ordner «Gesendet» von noreply@divelogix360.ch entsteht nicht, weil der Versand ausschliesslich per SMTP und ohne IMAP-Ablage erfolgt. Der Versandnachweis wird stattdessen gemäss ADR-018 in notification_log geführt (Commit 64c375d).

2. DNS-Konfiguration

Grundlage ist der Export der DNS-Zone aus dem Hostpoint-Kundencenter vom 10.10.2026.

Typ Name Wert Ergebnis
TXT (SPF) divelogix360.ch v=spf1 redirect=spf.mail.hostpoint.ch -all Syntaktisch gültig, aber wegen -all wirkungslos; am 12.10.2026 korrigiert (Abschnitt 6.3)
TXT (DKIM, Ed25519) 20261010-ed25519-3688e808._domainkey.divelogix360.ch v=DKIM1; k=ed25519; h=sha256; p=… Veröffentlicht
TXT (DKIM, RSA 1024) 20261010-rsa1024-3688e808._domainkey.divelogix360.ch v=DKIM1; k=rsa; h=sha256; p=… Veröffentlicht
TXT (DKIM, RSA 2048) 20261010-rsa2048-3688e808._domainkey.divelogix360.ch v=DKIM1; k=rsa; h=sha256; p=… Veröffentlicht
TXT (DMARC) _dmarc.divelogix360.ch v=DMARC1; p=quarantine; Gültig, Richtlinie Quarantäne
MX divelogix360.ch mx1.mail.hostpoint.ch, mx2.mail.hostpoint.ch (Priorität 10) Gesetzt

Die DKIM-Selektoren werden von Hostpoint pro Domain automatisch erzeugt. Für www.divelogix360.ch bestehen zusätzlich eigene Schlüssel mit dem Selektorsuffix 4d7d1849.

3. Hostpoint-Kundencenter: Erweiterter Schutz

Einstellung Wert
SPF «SPF-Record ist gesetzt»
DKIM Aktiviert
DMARC Aktiviert, Richtlinie «Quarantäne»
Absenderrichtlinie E-Mail-Programm «Versand nur mit jeweiligem E-Mail-Benutzer möglich»
Absenderrichtlinie Webserver «Versand nur mit dem Webhosting möglich, dem die Domain zugewiesen ist»

4. Externe Gegenprüfung

Werkzeug Ergebnis
dmarcian Domain Checker SPF gültig mit Hardfail (-all); DMARC p=quarantine gefunden. Die Bewertung «SPF gültig» erwies sich am 12.10.2026 als unzutreffend (Abschnitt 6.3).
MXToolbox SuperTool DMARC-Eintrag gefunden, Quarantäne-Richtlinie aktiv

Die DKIM-Abfrage bei MXToolbox wurde mit dem Selektor hostpoint ausgeführt und fand deshalb keinen Eintrag. Mit den tatsächlichen Selektoren aus Abschnitt 2 wurde keine externe Gegenprüfung durchgeführt.

5. Nachtrag vom 12.10.2026: Selbstverwalteter DMARC-Eintrag mit Berichtsadresse

Hostpoint führt den DMARC-Eintrag bei aktiviertem DMARC unter «Erweiterter Schutz» als nicht bearbeitbaren Systemeintrag. Der Dialog «DMARC-Richtlinie» erlaubt nur die Wahl zwischen «Quarantäne» und «Ablehnen»; eine Berichtsadresse lässt sich dort nicht angeben. Deshalb wurde der Eintrag am 12.10.2026 durch David Mittig auf Selbstverwaltung umgestellt:

  1. Eigenes Postfach dmarc@divelogix360.ch für DMARC-Sammelberichte angelegt, getrennt von bounces@divelogix360.ch.
  2. DMARC unter «Erweiterter Schutz» deaktiviert; der Systemeintrag _dmarc wurde dadurch entfernt.
  3. Eigenen TXT-Eintrag angelegt.
Typ Name TTL Wert
TXT (DMARC) _dmarc.divelogix360.ch 300 v=DMARC1; p=quarantine; rua=mailto:dmarc@divelogix360.ch; fo=1

Kontrolle anhand des Zonenexports vom 12.10.2026: genau ein DMARC-Eintrag; die DKIM-Einträge für divelogix360.ch und www.divelogix360.ch, SPF, MX, A, AAAA und CNAME sind gegenüber dem 10.10.2026 unverändert.

Gegenprüfung mit dem dmarcian Domain Checker am 12.10.2026: DMARC gültig mit p=quarantine und Berichtsadresse; SPF gültig mit Hardfail (später als unzutreffend erkannt, Abschnitt 6.3); DKIM gültig (RSA-2048-Schlüssel des Selektors 20261010-rsa2048-3688e808). dmarcian empfiehlt p=reject; die Verschärfung ist nach Auswertung der ersten Berichte vor dem Produktivbetrieb vorgesehen.

Betriebshinweis: DMARC unter «Erweiterter Schutz» darf nicht wieder aktiviert werden, solange der eigene Eintrag besteht, weil sonst zwei DMARC-Einträge entstehen und Empfänger DMARC ignorieren. Änderungen der Richtlinie erfolgen direkt im eigenen TXT-Eintrag.

6. Nachtrag vom 12.10.2026: Zustell-, Bounce- und Authentifizierungsprüfung

Die Prüfungen wurden am Abend des 12.10.2026 durch David Mittig mit dem Prüfwerkzeug backend/scripts/test-smtp.ts ausgeführt. Für einzelne Läufe wurde der Empfänger ausschliesslich über die Umgebungsvariable MAIL_DEV_CATCH_ALL der jeweiligen Konsolensitzung gesetzt; Skript und backend/.env blieben unverändert. Externe Testadressen werden hier nicht namentlich geführt.

6.1 Unbekannte Adresse der eigenen Domain

Prüfpunkt Ergebnis
Empfänger Nicht existierende Adresse unter divelogix360.ch
Ergebnis Hostpoint lehnt die Adresse bereits beim Versand ab: 550 unroutable address
Rücklaufmeldung Keine; der Fehler wird synchron an den Absender gemeldet

Folge: Unzustellbarkeit tritt in zwei Formen auf. Synchrone Ablehnungen erkennt der MailService direkt und protokolliert sie heute als failed in notification_log; der dabei gespeicherte Fehlercode ist der allgemeine Nodemailer-Code und unterscheidet nicht zwischen endgültigen (5xx) und vorübergehenden (4xx) Fehlern.

6.2 Rücklaufmeldung an bounces@divelogix360.ch

Prüfpunkt Ergebnis
Empfänger Nicht existierende Adresse einer externen Domain bei Microsoft 365
Annahme durch Hostpoint Erfolgreich (Message-ID zurückgegeben)
Ablehnung durch Empfängerserver 550 5.4.1 Recipient address rejected: Access denied
Eingang der Rücklaufmeldung In bounces@divelogix360.ch, rund eine Minute nach dem Versand
Format multipart/report; report-type=delivery-status nach RFC 3464 mit Textteil, message/delivery-status und vollständiger Originalnachricht (message/rfc822)
Umschlagabsender der Meldung <> mit Auto-Submitted: auto-replied
Zuordnung zur Originalnachricht Message-ID der Originalnachricht im Kopf References: der Meldung und im Kopf Message-ID: der angehängten Originalnachricht
Zustelldaten Action: failed; Status: 5.0.0 (allgemeiner Code von Hostpoint); genauer Code 5.4.1 nur in Diagnostic-Code

Damit ist belegt, dass die Rücklaufadresse trotz strikter Absenderrichtlinie funktioniert. Für die Bounce-Verarbeitung ergeben sich folgende Anforderungen:

  • Als endgültige Unzustellbarkeit gelten Action: failed mit Status 5.x.x, nicht nur 5.1.1.
  • Der genaue Fehlercode ist aus Diagnostic-Code zu lesen; Status dient als Rückfall.
  • Die Zuordnung zu notification_log.providerMessageId erfolgt über References: und ersatzweise über die angehängte Originalnachricht.
  • Rücklaufmeldungen enthalten die vollständige Originalnachricht, bei Einladungen also auch den Einladungslink. Verarbeitete Meldungen sind deshalb unverzüglich zu löschen.
  • Die Meldung trug den Kopf X-Hostpoint-Spambox: YES bei X-Spam-Status: No; ein Abruf muss den Spam-Ordner einbeziehen oder die Spamfilterung für bounces@ ist anzupassen.

6.3 Authentifizierung beim Empfänger

Prüfung Empfänger Zeitpunkt SPF DKIM DMARC
A dev@divelogix360.ch (Eingangsserver Hostpoint) 10.10.2026 13:42 pass pass, Selektoren 20260326-…-8010784d pass
B dev@divelogix360.ch (Eingangsserver Hostpoint) 12.10.2026 21:41 pass pass, Selektoren 20261010-…-3688e808 pass
C Bestehendes Postfach bei Microsoft 365 12.10.2026 21:45 fail pass (RSA-1024, RSA-2048); Ed25519 ignore pass über DKIM
D Bestehendes Postfach bei Microsoft 365, nach SPF-Korrektur 12.10.2026 22:01 pass pass (RSA-1024, RSA-2048); Ed25519 ignore pass

Prüfung A wurde noch mit den früheren DKIM-Schlüsseln vom 26.03.2026 signiert; Hostpoint hat die Schlüssel am 10.10.2026 nach dieser Nachricht neu erzeugt. Microsoft unterstützt Ed25519-Signaturen nicht und ignoriert sie; die RSA-Signaturen genügen. Bei C und D stellte Microsoft die Nachricht in den Posteingang zu (Spam-Bewertung SCL 1, compauth=pass).

Befund SPF: Gemäss RFC 7208, Abschnitt 6.1, ist ein redirect-Modifikator zu ignorieren, wenn der Eintrag einen all-Mechanismus enthält. Der Eintrag v=spf1 redirect=spf.mail.hostpoint.ch -all wirkte deshalb bei standardtreuen Empfängern wie v=spf1 -all. MXToolbox bestätigte dies mit der Warnung «SPF Modifier will be ignored». Der Eingangsserver von Hostpoint wertete den Eintrag abweichend als pass, weshalb der Fehler bei Prüfung A und B nicht sichtbar war. DMARC bestand bei Microsoft nur wegen der ausgerichteten DKIM-Signatur.

Korrektur: Der SPF-Eintrag wurde am 12.10.2026 durch David Mittig geändert (laut SOA-Seriennummer des Zonenexports um 21:57):

Typ Name TTL Wert
TXT (SPF) divelogix360.ch 300 v=spf1 include:spf.mail.hostpoint.ch -all

Kontrolle anhand des Zonenexports vom 12.10.2026: genau ein SPF-Eintrag; «Erweiterter Schutz» meldet weiterhin «SPF-Record ist gesetzt»; DMARC, DKIM und MX unverändert. MXToolbox zeigt nach der Änderung include spf.mail.hostpoint.ch mit «Pass» und keine Warnung mehr. Prüfung D bestätigt die Wirkung.

7. Nachtrag vom 14.10.2026: End-to-End-Test der Bounce-Verarbeitung

Geprüft wurde die automatisierte Bounce-Verarbeitung gemäss ADR-024 vom Versand bis zur Zuordnung in notification_log. Werkzeug: backend/scripts/test-bounce-e2e.ts (npm run bounce:e2e), ausgeführt auf dem Entwicklungsrechner gegen Hostpoint und die Entwicklungsdatenbank.

7.1 Ablauf und Ergebnis

Schritt Ergebnis
Automatisierte Tests vor dem Lauf 59 von 59 Unit-Tests in elf Testdateien erfolgreich
send Testnachricht über Hostpoint SMTP (Port 587, STARTTLS) mit Return-Path bounces@divelogix360.ch an eine nicht existierende Adresse einer fremden, über Microsoft 365 betriebenen Domain gesendet; Versandeintrag status=sent mit Message-ID <ee602c98-…@divelogix360.ch> angelegt (Empfänger nur als SHA-256-Hash)
Rücklaufmeldung Am 14.10.2026 um 08:31 im Postfach bounces@divelogix360.ch eingegangen: multipart/report; report-type=delivery-status, Status: 5.0.0, Diagnostic-Code mit 550 5.4.1, References: mit der Message-ID des Versands; trotz Kopf X-Hostpoint-Spambox: YES im Posteingang abgelegt
verify Abruf geprüft=1, zugeordnet=1, vorübergehend=0, manuell=0; Versandeintrag status=bounced, errorCode=DSN_5.4.1; Testeintrag danach gelöscht
Postfach nach dem Abruf Zugeordnete Rücklaufmeldung aus dem Postfach gelöscht, auch nicht im Ordner «Manuell-pruefen» vorhanden

Damit sind belegt: Erkennung des Hostpoint-Formats (genauer Code aus Diagnostic-Code), Zuordnung über References:, Fortschreibung des Versandeintrags mit standardisiertem Fehlercode ohne Diagnosetext sowie die unverzügliche Löschung verarbeiteter Meldungen gemäss Runbook.

7.2 Befund beim ersten Lauf und Korrektur

Ein erster Lauf um 08:21 scheiterte beim Anlegen des Versandeintrags an der Prüfregel notification_log_timestamps_chk: queued_at wurde von der Datenbankuhr gesetzt, sent_at von der Anwendungsuhr, die geringfügig zurücklag. Derselbe Fehler konnte im MailService Versandprotokolle stillschweigend verhindern. Korrektur am 14.10.2026: queuedAt wird vor dem Versand in der Anwendung gesetzt, sentAt und failedAt liegen nie davor; mit Unit-Tests abgesichert. Rücklaufmeldungen ohne passenden Versandeintrag, darunter die dieses ersten Laufs, liessen sich nicht zuordnen und wurden wie vorgesehen in den Ordner «Manuell-pruefen» verschoben.

Nachweisgrenzen und offene Punkte

  • SPF, DKIM und DMARC sind seit 12.10.2026 an zugestellten Nachrichten bei Hostpoint und Microsoft 365 nachgewiesen (Abschnitt 6.3); andere Empfängerdienste wurden nicht geprüft.
  • Die DMARC-Berichtsadresse ist seit 12.10.2026 gesetzt (Abschnitt 5); der Eingang der ersten Berichte ist noch nicht bestätigt.
  • Die Verschärfung der DMARC-Richtlinie auf p=reject steht nach Auswertung der Berichte noch aus.
  • Der Rücklauf an bounces@divelogix360.ch (Abschnitt 6.2) und die automatisierte Bounce-Verarbeitung (Abschnitt 7) sind in der Entwicklungsumgebung nachgewiesen. Geprüft wurde ein Rücklauf von Microsoft 365; andere Empfängerdienste wurden nicht geprüft. Im produktiven Betrieb ist der Abruf mit BOUNCE_POLL_ENABLED=true zu aktivieren; der Monitoring-Alarm für «Manuell-pruefen» folgt mit ADR-021.
  • Monitoring-Alerts, schriftliche Nutzungsbestätigung und Auftragsbearbeitungsvereinbarung mit Hostpoint bleiben gemäss ADR-016 offen.
  • Die Prüfungen der Domain-Authentifizierung (SPF, DKIM, DMARC) vom 10.10.2026 und 12.10.2026 wurden manuell ausgeführt und sind vor der Umstellung auf p=reject zu wiederholen. Die Bounce-Verarbeitung ist mit Unit-Tests und dem End-to-End-Skript wiederholbar prüfbar.

Änderungshistorie

Datum, Uhrzeit Version Änderung Autor
14.10.2026 09:17 1.4 Nachtrag Abschnitt 7 ergänzt: End-to-End-Test der Bounce-Verarbeitung vom 14.10.2026 mit Zuordnung, Fehlercode DSN_5.4.1 und Löschung der Meldung; Befund und Korrektur der Versandzeitpunkte; Abgrenzung und Nachweisgrenzen nachgeführt Claude
12.10.2026 22:04 1.3 Nachtrag Abschnitt 6 ergänzt: synchrone Ablehnung unbekannter eigener Adressen, Rücklaufmeldung an bounces@ mit Formatbefund, Authentifizierungsprüfung bei Hostpoint und Microsoft 365, SPF-Befund (redirect mit -all wirkungslos) und Korrektur auf include; Bewertungen in Abschnitt 2, 4 und 5 sowie Nachweisgrenzen nachgeführt Claude
12.10.2026 20:53 1.2 Nachtrag vom 12.10.2026 ergänzt: DMARC-Eintrag selbstverwaltet mit Berichtsadresse dmarc@divelogix360.ch, Postfach angelegt, Zonenkontrolle und dmarcian-Gegenprüfung; Nachweisgrenzen nachgeführt Claude
12.10.2026 09:58 1.1 Änderungshistorie ans Dokumentende verschoben und Sprunglink «Änderungshistorie anzeigen» unter dem Kopf ergänzt (einheitlicher Dokumentaufbau gemäss AGENTS.md) Claude
12.10.2026 09:02 1.0 Nachweis der SMTP-Laufzeitprüfung sowie der SPF-, DKIM-, DMARC- und Absenderrichtlinienkonfiguration vom 10.10.2026 dokumentiert Claude