Sven Rautenberg: SMTP/sendmail

Beitrag lesen

Moin!

Im Ergebnis käme genau das heraus, was jetzt auch heraus kommt: PHP informiert über das Ergebnis von mail() über die erfolgreiche Abspaltung eines Subprozesses, der unabhängig irgendwann die Mail zugestellt kriegt - oder eben auch nicht - und das Hauptskript läuft weiter.

Wiebitte?!? mail() informiert über die Ausgabe des Scripts sonst auch nicht, ob die Mail erfolgreich zugestellt wurde, sondern parst nur den Status des aufgerufenen sendmail und gibt etweder true oder false zurück.

Sag ich doch. Hast du nur nicht verstanden.

Hilfsmittel: s/über/durch/g

Wenn alles sicher laufen wird, gibt es keinen Mailserver mehr von der Stange _zusätzlich_. Er soll durch eigenes ersetzt werden. Die Argumentation verstehe ich ansich. Es ging nur um die Beleuchtung dessen, was wirklich möglich ist. Und bei mir im Speziellen um eigene Programmierung.

Du schreibst ernsthaft einen eigenen Mail_SERVER_ in PHP? Na dann viel Spaß - ich bevorzuge dann doch lieber komfortable Standardsoftware wie Postfix. Der vertraue ich mehr, als meinen eigenen Demon-Programmierkünsten (die sind nicht existent). Und zumindest PHP4 hat mit Demons so seine Probleme, würde ich behaupten (basierend auf den Erfahrungen mit einem Demon, der auf den SELF-Servern läuft und nicht sehr stabil ist).

  • nicht immer garantiert einen funktionierenden Mailserver antrifft (ich habe da schon so meine Erfahrungen mit T-Systems-Webservern machen dürfen)
  • den Versanderfolg auf Basis eines SMTP-Statuscodes wissen möchte (Mailverifizierung)

Na und? PHP kann eigene Logs erstellen, oder sich mit /dev/log in Verbindung setzen.

Dass PHP eigene Logs erstellen kann, hilft nicht bei dem Versuch, die erfolgreiche Auslieferung einer Mail an den Zielserver festzustellen, weil PHP mit mail() diese Aufgabe gar nicht selbst erledigt.

Und auf die Logfiles vom Mailserver darf PHP mit Sicherheit nicht lesend zugreifen - abgesehen davon, dass Logfileformate auch immer softwarespezifisch sind (Sendmail schreibt ein anderes Format als Exim), und deren Position systemspezifisch (je nachdem, wie der Admin den syslog konfiguriert hat, tauchen die Meldungen entweder in einer separaten Datei, u.U. noch getrennt nach Logleveln, auf, oder zusammen mit sämtlichen Logmeldungen aller anderen Prozesse in einer gemeinsamen und einzigen /var/log/messages).

PEARs Mail oder auch Net_SMTP sind da durchaus hilfreich. :)

Nein danke! Die Webserverlogs quellen über von lauter Requests auf Schwachstellen von sooooooo "hilfreichen" Programmmen. Was ich verzapfe, dafür halte ich auch meinen Kopf für hin. Dazu bin ich bei Programmen anderer nicht bereit.

Die Klasse Net_SMTP ist erstens gut dokumentiert, zweitens im Quelltext erhältlich, drittens nicht so wahnsinnig riesig, als dass man sie nicht selbst mal durchlesen könnte, und hat viertens ja absolut keine remote ausnutzbare Schwachstelle, da sie selbst nur beim Senden der Mail an ein Ziel in Erscheinung tritt.

Inwiefern du Requests auf Net_SMTP feststellen konntest, scheint mir da doch etwas rätselhaft.

- Sven Rautenberg

--
My sssignature, my preciousssss!