Gibt es einen in PHP geschriebenen Mailserver?

1766
mafu

Ich möchte einen Mail-Server auf einem meiner gehosteten Computer einrichten, der nur PHP unterstützt. Auf diesem Computer wird kein Standard-Mail-Server ausgeführt.

Gibt es Mail-Server, die in PHP geschrieben sind? Oder ist es überhaupt möglich, einen Mail-Server in Bezug auf die Einschränkungen der Sprache in PHP zu schreiben?

6

2 Antworten auf die Frage

4
afrazier

Ihr grundlegendes Problem besteht darin, dass Sie, selbst wenn Sie einen in PHP implementierten Mail-Server geschrieben oder gefunden haben, ihn nicht auf Ihrem Host ausführen können.

  • Der Webserver, der Ihre PHP-Skripts ausführt, überwacht Port 80 (und möglicherweise 443), nicht 25, 587 oder 465.
  • Die Skripts werden vom Webserver beendet, wenn sie zu lange laufen oder zu viel RAM verwenden.
  • Sie können das Skript nicht als Dienst auf dem Host ausführen.
  • Selbst wenn Sie könnten, verfügen die meisten über Ressourcenmonitore, die lang andauernde Skripts beenden.
  • Selbst wenn dies kein Problem war, sind normalerweise Root-Berechtigungen erforderlich, um Ports mit niedriger Nummer (<1024) zu überwachen.

Bearbeiten: Alle oben genannten gehen von Shared Hosting aus. Die meisten dieser Einschränkungen gehen natürlich mit einem VPS weg. In diesem Fall können Sie jedoch geeignete Mail-Server installieren, so dass es sowieso keine Rolle spielt.

Abgesehen davon gibt es keinen besonderen Grund dafür, dass niemand sich die Mühe gemacht hat, einen Mail-Server in PHP zu schreiben. Es ist einfach kein besonders nützliches Unterfangen.

@ Linker3000 hat es in @ Ignacios Antwort richtig : Wechseln Sie zu einem Host, der Ihnen das gibt, was Sie möchten.

+1, aber Sie machen falsche Annahmen über PHP. Zu # 1: stream_socket_server () und socket_accept () (obwohl # 5 natürlich gilt). Zu # 2: PHP-Skripte sind nicht unbedingt CGI; Sie können von der Befehlszeile aus oder im Hintergrund ausgeführt werden, sofern der Zugriff erforderlich ist. grawity vor 13 Jahren 2
@ grawity: Ich bin mir bewusst, dass PHP nicht unbedingt "CGI" bedeutet, aber ist es möglich, ein PHP-Skript als CGI laufen zu lassen, das an einem anderen Port abgehört wird? Ich musste es nie versuchen. Alle anderen Elemente sind jedoch immer noch Probleme. Du hast mir doch etwas anderes einfallen lassen ... afrazier vor 13 Jahren 0
Der Dienst, den ich verwende, wird in der Cloud gehostet. Leider weiß ich nicht, ob ich technisch jeden Port benutze, aber ich persönlich hätte nichts dagegen, den verwendeten Port in meinem E-Mail-Client auf etwas anderes als Standard zu setzen. mafu vor 13 Jahren 0
3
Ignacio Vazquez-Abrams

Es ist theoretisch möglich, aber niemand tut es, da ein Mail-Server ein großes, komplexes Biest ist und es bereits so viele andere Sprachen gibt

Wenn es möglich ist, kann ich kaum glauben, dass es niemand versucht hat. mafu vor 13 Jahren 0
* hust * Nun, die Leute, die einen Mail-Server schreiben können, benutzen wahrscheinlich nicht so viel PHP ... Ignacio Vazquez-Abrams vor 13 Jahren 3
Es wäre einfacher, zu einem Host zu wechseln, der mehr Flexibilität / Funktionalität bietet. Linker3000 vor 13 Jahren 1
@ Linker3000: Aus bestimmten Gründen ist das Verschieben in meinem Fall keine Option. mafu vor 13 Jahren 0