Hallo,
Na dann will ich mal versuchen etwas ausführlicher zu werden:
Es ist richtig. Es geht um den Versand von mails. Auch richtig ist, daß sie via SMTP versendent werden. Das SMT-Protokoll wird zwischen einem Client und einem Server eingestzt, wobei in den allermeisten Fällen von zwei unterschiedlichen Maschinen ausgegaben werden kann, die durch das Internet miteinander verbunden sind.
yo, bis hierher lausche ich und bin 100% einverstanden.
Der Standard-Mail-Client auf *NIX-Systemen heißt sendmail. Sendmail liest (so jedenfalls beim Beispiel mit der PHP-Funktion mail()) vom
stdin
Daten ein. Diese Daten sind durch <CRLF> abgetrennt Message-Header und Message-body (kurz die Gesamtheit der zu versendenden Mail). Dabei werden die Daten aus mit "To:", "Cc:", "Bcc:", "From:" (und ähnliche) beginnenden Zeilen für SMTP aufbereitet.
Moment, Moment. Verstehe ich das richtig: Du willst damit sagen, dass Unix zwischen PHP und dem SMTP-Server eine weitere Zwischenstation in Gestalt dieses Programms sendmail einfügt? Wie uneffizient ...
Message-Header besteht dabei aus einer Reihe von Zeilen, die mit der Transaktion zwischen Client und Server in Angaben und Wortlaut nichts gemein hat. Ich glaube das wird aus RFC 2821 / Seine 75 - Anhang D.3 / "Step 2" am deutlichsten. Die Message-Header subsummieren sich dort zum Content, der auf die Anfrage "DATA" bei Statuscode "354" als Antwort gesendet wird. SMTP kennt die "Befehle" DATA|EHLO|EXPN|HELO|HELP|MAIL|NOOP|RCPT|QUIT|RSET|VRFY "From" und der gleichen ist nicht dabei, wohlaber, wie oben beschrieben, werden sie von der Client-Software zu versenden (insbesondere von Anworten) benötigt.
Okay, der Aufbau der Headerzeilen hat strenggenommen nichts mit dem SMTP-Protokoll zu tun, da habe ich mich etwas ungenau ausgedrückt. Ich wollte nur auf das standardisierte Format der Mail-Headerzeilen hinaus, auch wenn das in einem anderen RFC definiert ist, sorry.
Es ist richtig. "From:" (und der gleichen) wird durch RFC 822 Abs. 4.4.1 definiert, strenggenommen hat es aber nichts mit den protokollerhelbichen Commands zu tun.
Einverstanden.
PHP baut meines Wissen auf *NIX keinen Socket zu einem SMTP-Server wärend der Ausführung der Funktion mail() auf.
Unter Windows tut es das (PHP kontaktiert direkt den SMTP-Server, der in der php.ini vereinbart ist), und da mir dieses Vorgehen vertraut ist und sinnvoll erscheint, habe ich es unbewusst verallgemeinert.
Solltest Du über ein *NIX-System verfügen, ...
Negativ.
BTW: Schade eigentlich, daß Christoph Zurnieden nicht mehr postet.
Stimmt, den vermisse ich auch schon seit geraumer Zeit.
Schönen Abend noch,
Martin
TEAM: Toll, Ein Anderer Macht's.