Sven Rautenberg: Email Header Error 550

Beitrag lesen

Moin!

Zu GMX Adressen beispielsweise kann ich meine Mails verschicken, bei Freenet Adressen bekommt mein Mercury Mailserver folgende Fehlermeldung zu Gesicht:
[...]
550 No valid sender in Sender:, Reply-To:, or From:

Das heißt, dass Freenet die angegebene Absenderadresse analysiert, und den dazu gehörenden Host fragt, ob dein DSL-Host autorisiert ist, im Namen des angeblichen Absenders Mails zu verschicken. Das ist er dann wohl nicht.

Nein, diese Aussage würde ich als falsch bezeichnen.

Der Mailserver bemängelt einfach, dass er in den angegebenen Headern keine gültige Adressangabe gefunden hat. Da SMTP ein eher fragiles Klartextformat ist, und man jeden möglichen Blödsinn in die einzelnen Textzeilen einer Mail schreiben kann und es dem empfangenden Mailserver obliegt, diesen Freitext zu analysieren und gültige Angaben daraus zu gewinnen, kann man eben Pech haben, wenn die eigene Vorstellung von gültigen Headern nicht mit der Erwartung von Mailservern und vor allem einschlägigen RFCs übereinstimmt.

Häufigster Fehler: Alle Header-Zeilen einer Mail erfordern 7-Bit-ASCII, alles andere ist verboten und muss passend codiert werden. Da manche Mailserver die Direktive "liberal beim Dateneingang, konservativ beim Datenausgang" konsequenter umsetzen, als andere, hat man beim eigenen Fehlverhalten eben manchmal Glück, bzw. es fallen Fehler nicht sofort auf.

Wie muss mein Header aussehen damit er valide ist, bzw. Freenet nicht rumzickt? UTF-8 würde ich gerne als Codierung weiterverwenden.

Headerzeilen haben gemäß RFC2047 codiert zu werden. In PHP wird das von der Funktion mb_encode_mimeheader() erledigt. Man kann es aber auch manuell durch passende Kombination von statischen Strings und base64() hinkriegen. Sieht dann allerdings im Klartext betrachtet nicht mehr sehr lesbar aus, funktioniert aber in allen Mailservern und Mailprogrammen.

- Sven Rautenberg