Das Problem

Eine Versandbenachrichtigung mit dem Betreff “Ihre Lieferung verzögert sich” wird von Dynamics NAV erzeugt und über Exchange verschickt. Der Empfänger bei mail.de bekommt die Mail nie — stattdessen kommt ein Bounce zurück:

550-5.6.0 Reject; strict 7bit header encoding required;
Header name: Subject offset: 19

Position 19 im Subject — das ist das “ö” in “verzögert”. Der empfangende Server verlangt, dass Non-ASCII-Zeichen im Header RFC 2047-konform encodiert werden, also sowas wie:

Subject: =?UTF-8?Q?Ihre_Lieferung_verz=C3=B6gert_sich?=

Stattdessen kommt rohes UTF-8 an. mail.de lehnt korrekt ab — das ist kein Bug dort, sondern ein Standard-Verstoß auf Absenderseite.

Der Instinkt (falsch)

Erste Idee: Postfix-Relay zwischen NAV und Exchange/Smarthost schalten, das die Header nachträglich encodiert. Zweite Idee: NAV-Codeunit anpassen. Dritte Idee: den Smarthost-Betreiber bitten.

Alles Overkill. Die Lösung ist ein einzelner PowerShell-Befehl.

Die Diagnose

Der Mailfluss sieht so aus:

srv-r2d2 (NAV) → mail-obiwan (Exchange) → Smarthost → Internet

NAV liefert die Mail per SMTP Submission an Exchange ein. Exchange sollte die Header im Transport-Pipeline RFC 2047-encodieren — tut es aber offensichtlich nicht. Also: Exchange-Konfiguration prüfen.

Schritt 1: Remote Domain Settings

Get-RemoteDomain | fl Name, CharacterSet, NonMimeCharacterSet, ContentType
Name                : Default
CharacterSet        : iso-8859-1
NonMimeCharacterSet : iso-8859-1
ContentType         : MimeHtmlText

ISO-8859-1 kann “ö” darstellen — das ist nicht das Problem.

Schritt 2: Send Connector

Get-SendConnector | fl Name, *encoding*, *convert*, *mime*

Keine encoding-relevanten Properties gesetzt. Standard-Verhalten.

Schritt 3: Der Treffer

Get-OrganizationConfig | fl ByteEncoderTypeFor7BitCharsets
ByteEncoderTypeFor7BitCharsets : 0

Da ist der Übeltäter.

Die Ursache

ByteEncoderTypeFor7BitCharsets steuert, wie Exchange mit Nicht-7-Bit-Content in ausgehenden Mails umgeht. Der Standardwert 0 bedeutet: Exchange macht keine erzwungene Encodierung. Wenn NAV den Subject-Header mit rohem UTF-8 einliefert, reicht Exchange das unverändert durch.

Die meisten Mailserver schlucken das trotzdem — aber Server mit strikter RFC-Prüfung wie mail.de lehnen korrekt ab.

Die Lösung

Ein Befehl in der Exchange Management Shell:

Set-OrganizationConfig -ByteEncoderTypeFor7BitCharsets 13

Wert 13 = Exchange erzwingt UTF-8-Encoding mit 7-Bit-sicherer Ausgabe für alle ausgehenden Mails. Subject-Header mit Umlauten werden automatisch RFC 2047-konform encodiert.

Verifizieren

Get-OrganizationConfig | fl ByteEncoderTypeFor7BitCharsets
# Erwartet: 13

Danach eine Test-Mail mit Umlaut im Betreff an eine @mail.de-Adresse schicken und prüfen, ob sie ankommt.

Rollback

Falls wider Erwarten Probleme auftreten:

Set-OrganizationConfig -ByteEncoderTypeFor7BitCharsets 0

Warum das kein Risiko ist

  • RFC 2047-Encoding ist der Standard seit 1996 — jeder Mailserver der Welt versteht das
  • Die Einstellung ist org-weit, betrifft also alle ausgehenden Mails — aber korrekt encodierte Header sind nie ein Problem
  • Die Änderung macht Exchange RFC-konformer, nicht weniger

Betroffen: Nicht nur mail.de

Das Problem tritt bei jedem Empfänger mit strikter Header-Prüfung auf. mail.de ist nur einer davon. Die Dunkelziffer ist vermutlich höher — viele Bounces landen in Postmaster-Postfächern, die niemand liest.

Wenn du Dynamics NAV oder Business Central mit Exchange betreibst und deutschsprachige Betreffzeilen versendest, prüf den Wert. Kostet 30 Sekunden.

Referenzen