alle Anleitungen

// so behebst du es

Fehlende oder falsche Date- und Message-ID-Header

Jede E-Mail sollte ein korrektes Date und eine eindeutige Message-ID tragen. Ohne sie vergeben Spamfilter Punkte und Gmail kann die E-Mail ablehnen.

Was das bedeutet

Jede E-Mail hat oben versteckte Zeilen, die Header heißen. Zwei davon werden in jeder Nachricht erwartet:

  • Date: wann die E-Mail geschrieben wurde, mit Zeitzone. Beispiel: Date: Tue, 14 Oct 2025 09:30:00 +0200
  • Message-ID: eine eindeutige Kennung, wie eine Seriennummer. Beispiel: Message-ID: <7f3a91c2@mail.yourdomain.com>

Normale E-Mail-Programme fügen sie automatisch hinzu. Sie fehlen oder sind falsch meist dann, wenn E-Mails von einem Skript, einem Website-Plugin, einem Drucker oder einer alten Anwendung gesendet werden, die die E-Mail von Hand zusammenbaut.

Warum das wichtig ist

  • SpamAssassin vergibt Punkte für ein fehlendes Datum (MISSING_DATE), eine fehlende Message-ID (MISSING_MID) oder ein Datum weit in der Vergangenheit oder Zukunft (DATE_IN_PAST_..., DATE_IN_FUTURE_...).
  • Gmail kann E-Mails ohne gültige Message-ID ablehnen und erwartet, dass Nachrichten dem E-Mail-Formatstandard (RFC 5322) folgen.
  • E-Mail-Programme nutzen diese Header, um Nachrichten zu sortieren und Unterhaltungen zu bilden.

So prüfst du es

Sende eine E-Mail aus dem Tool oder Skript mit dem Problem an deine Testadresse auf der Startseite (/). Im Bericht listet der Abschnitt SpamAssassin die Regeln auf, die zugetroffen haben. Du kannst auch in jedem Postfach den Originalquelltext der E-Mail öffnen („Original anzeigen“ in Gmail) und dir die ersten Zeilen ansehen.

So behebst du es

1. Lass eine Mail-Bibliothek die E-Mail bauen

Die beste Lösung ist, Header nicht mehr von Hand zu schreiben. Bibliotheken wie PHPMailer oder Symfony Mailer (PHP), Nodemailer (Node.js) oder das Modul email (Python) fügen beide Header korrekt hinzu. In Python zum Beispiel:

from email.utils import formatdate, make_msgid
msg["Date"] = formatdate(localtime=True)
msg["Message-ID"] = make_msgid(domain="yourdomain.com")

2. Wenn du Header selbst schreibst

  • Date muss genau das Format Day, DD Mon YYYY HH:MM:SS +ZZZZ auf Englisch nutzen, mit der echten Zeitzonen-Abweichung.
  • Message-ID muss für jede E-Mail eindeutig sein, von < und > umschlossen, und ein @ gefolgt von deiner Domain oder deinem Servernamen enthalten. Verwende dieselbe ID nie zweimal.
  • Nutze nur ein Date und eine Message-ID pro E-Mail.

3. Stell die Uhr richtig

Ein falsches Datum kommt oft von einem Server, dessen Uhr falsch geht oder auf die falsche Zeitzone eingestellt ist. Aktiviere unter Linux die Zeitsynchronisation (zum Beispiel mit timedatectl set-ntp true) und prüfe die Zeitzone.

4. Lass deinen Mailserver ergänzen, was fehlt

Manche Server können ein fehlendes Date oder eine fehlende Message-ID bei Nachrichten ergänzen, die sie senden. Postfix zum Beispiel macht das für E-Mails, die auf dem Server selbst eingereicht werden, aber nicht immer für E-Mails von anderen Rechnern. Das ist ein Sicherheitsnetz, kein Ersatz dafür, die Anwendung zu reparieren.

Prüfe, ob es behoben ist

Sende eine neue E-Mail aus demselben Tool an die Adresse auf der Startseite. Der Abschnitt SpamAssassin sollte MISSING_DATE, MISSING_MID oder Datumsregeln nicht mehr auflisten, und das angezeigte Datum sollte zur echten Sendezeit passen.

Prüfe, ob es behoben ist

DNS-Änderungen können ein paar Minuten bis einige Stunden dauern. Sende danach eine neue Test-E-Mail oder scanne deine Domain erneut.

Ähnliche Anleitungen