E-Mails mit PHP entgegennehmen

Hallo,

Mir ist nun bekannt, dass man über den HTTP-Server mittels PHP E-Mails empfangen kann…
Das möchte ich gerne auch machen. Aber leider habe ich keine Ahnung, wie das gehen könnte, ausser dass E-Mails ganz normale Dateien sind weiss ich nähmlich nicht viel…

Ich hoffe einer von euch kann mir da Helfen.

mfg Joey

empfangen?
gibts bei PHP listening sockets? hab mich damit nie beschäftigt, weil ich es bisher für unsinnig hielt, das in php zu machen.
Ansonsten denke ich könnte man E-Mails mit fsockopen (was natürlich hier auf bplaced nicht geht) und dem POP3 Protokoll (oder eines der anderen) auslesen. Das sollte nicht schwierig sein.

Mit auslesen meinst du von einem mailserver?

Eigentlich wollte ich, dass direkt hinter *@meinedomain.xy direkt ein php skript steckt, welches immer beim eintreffen einer Mail ausgeführt wird, und dieses dann verarbeitet, je nach dem halt in MySQL oder halt als File speichert…

:unamused: ich hab mir das eigentlich so vorgestellt, dass es eig. wie http-requests funktioniert, also dass eigetlich immernoch der webserver dazwischen steckt und halt ein Email entgegennimmt, statt eines gewöhlichen Requests.

Ich hab auch schon mal ein script gefunden, welches das eigentlich möglich machen sollte, aber das ist halt nicht freeware, und der preis weis ich gerade nicht mehr…

[quote]gibts bei PHP listening sockets?[/quote]Nein, ich glaube nicht. Da würde ja sowieso die executionstime im wege stehen…

mfg Joey

HTTP läuft auf Port 80, der E-Mail verkehr aber läuft über port 25… außerdem sind es zwei unterschiedliche Protokolle… die ähneln sich zwar in mancher Hinsicht, aber SMTP ist mit HTTP nicht kompatibel.

Du brauchst einen Mail-Server. Vielleicht kann man die so konfigurieren, dass PHP genutzt wird.
Wer weiß, vielleicht kennt sich da jemand anderes besser aus.

meines wissens nach spielt der Port aber nicht die grosse rolle…

nicht jeder http server ist auf port 80 installiert…

ich hoffe, irgendjemand hat einwenig mehr wissen, als wir beide xD

mfg Joey

natürlich kann man einen Webserver auch auf einen anderen Port laufen lassen.
Das größere Problem ist eher, dass die Protokolle unterschiedlich sind.
Gemeinsam haben sie, dass sie sowas wie Headerzeilen nutzen und beides Textbasierend ist.
Allerdings ist SMTP mehr eine art “chat”, d.h. Client und Server tauschen mehrere Befehle miteinander aus, während bei HTTP grundsätzliche EINE Anfrage, und EINE Antwort gesendet wird.
Hinzu kommt noch, dass SMTP vollkommen andere Befehle nutzt als HTTP, und bei SMTP der Sever üblicherweise den ersten Schritt macht, und bei HTTP macht der Client den ersten Schritt.
Kannst es dir ja einfach mal anschauen. Wikipedia ist da ganz hilfreich.
http://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol

Die beiden Protokolle vertragen sich einfach nicht. Wobei es natürlich SEIN kann, dass es irgendwelche Module für Apache gibt… da Lohnt sich aber (denke ich) ein eigenständiger Mailserver eher.

mfg Balmung

achso, ok vielen dank,

falls trotzdem jmd. was weiss, ruhig her damit^^

nein, es geht nicht weil Apache keine Ahnung hat, was es mit einem SMTP-Request machen soll, das verwendet nämlich weder den HTTP-Header, noch Hostinformationen…

de.wikipedia.org/wiki/SMTP#Das_Protokoll

Das geht generell schon - man muesste das Mailpostfach per Pipe | auf ein Script “umleiten”. Das erfordert aber Zugriff auf die Konfiguration des MTA.

Achso, schade…
ich hätte es nähmlich gerne hier gemacht (wo ich das ja nicht habe^^)

mfg Joey