Andreas Schott wrote:
In deinem Beispiel unten sehe ich keinen "To: "-Header. Dieser Header ist es aber, den der Mailclient anzeigt. Wenn dein Script diesen Header nicht selbst erzeugt, holt Postfix (genau Cleanup) dies nach. Vermutlich wird dann nur ein generischer Header gesetzt wie "To: Undisclosed Recipient".
Huch? Ich kann das gerne einfügen, aber kannst du mir erklären, warum ein Mailprogramm (oder Webmail) To: benötigt um den Absender anzuzeigen?
Weil es zwei völlig unabhängige Empfänger (und Absender) gibt: - Envelope Sender/Empfänger - From:/To: Sender/Empfänger Technisch läuft die Übertragung einer Mail wie folgt ab: - Client verbindet sich mit Server auf Port 25 - Client meldet sich mit HELO/EHLO - Client übermittelt Absenderadresse mit MAIL FROM: - client übermittelt Empfängeradressen mit RCPT TO: Dies ist der sogenannte Envelope. Bisher ist die eigentliche Mail noch nicht angefasst worden. Der Mailclient "übersetzt" die From:, To:, CC:, BCC:-Header in die entsprechenden MAIL FROM: und RCPT TO: Befehle des SMTP-Protokolls. Das findet bei dir jedoch nicht statt, da du direkt über PHP die Mail zusammenbaust und verschickst. Wenn der Server die oben genannten SMTP-Befehle mit "215 OK" bestätigt, dann sendet der Client den Befehl DATA, und der Server antwortet mit 354 OK, END WITH CRLF . CRLF Jetzt erst wird die Mail mitsamt allen Headern übertragen, darin auch die From:, To:, CC:, BCC:-Headerzeilen. Dies hat jedoch NICHTS mit den Adressen zu tun, welche in dem SMTP-Envelope verwendet wurden. Deshalb ist der From: und To: Header Pflicht. Übrigens auch weitere Felder wie Date:. Nähere Einzelheiten zu Headern und dem korrekten Aufbau dieser Felder enthält RFC 2822. Dies macht übrigens auch das Fälschen von Headern so leicht, was Spammer weidlich ausnutzen.
Wenn ich eine Mail an empfaenger@domain.de schicke ist mein Absender doch From: MeinName
- und der wird doch als Absender angezeigt - nicht empfaenger@domain.de, oder doch?
Nicht auf der SMTP-Protokoll-Ebene. Dort gibt es kein MeinName, nur ein
Mail from: