wake-up-neo.com

Wie erstellt man einen webbasierten E-Mail-Client mit PHP?

Ich möchte lernen, wie man einen webbasierten E-Mail-Client in PHP erstellt (ähnlich wie bei Yahoo und Google Mail).

Weiß jemand, wie ich damit anfangen kann?

Ich möchte, dass mein System E-Mails senden und empfangen kann.

23
panidarapu

Die naheliegendste Antwort wäre " nicht ": Es gibt bereits viele Webmail-Programme, von denen einige PHP-basiert sind (wenn Sie darauf angewiesen sind) mit PHP, weil Sie bereits einen Server haben, der auf einem LAMP-Stack basiert, zum Beispiel) .

Um nur einige Namen zu nennen, die alle auf PHP basieren, können Sie sich diese ansehen:

  • SquirrelMail : eine ziemlich alte und nicht wirklich sexy ... Aber macht den Job schon seit Jahren
  • Horde IMP : Auch gut bekannt und ziemlich mächtig
  • roundcube : vielleicht das "sexy" und "web 2.0" der Liste derer, die ich ausprobiert habe
  • AtMail : Ich habe diesen noch nie benutzt, daher kann ich nicht mehr sagen ...

Ich habe die drei Ersten der Liste eine ganze Weile benutzt. roundcube war definitiv das " benutzerfreundlichste ", würde ich sagen ...

(Ein bisschen googeln, vielleicht finden Sie noch viel mehr - aber ich glaube, ich habe über die gesprochen, die am häufigsten verwendet werden)


Wenn Sie nun ein Webmail für Ihr Unternehmen einrichten müssen , sagen wir: Verwenden Sie auf jeden Fall eine bereits vorhandene Software :

  • eine vorhandene Software wäre schon " gut ":
    • viele Leute benutzen es, was bedeutet, dass viele Leute sagten " das könnte besser gemacht werden " oder " das ist nicht benutzerfreundlich ", oder ... du verstehst, worum es geht; all dies hat die bestehende Software verbessert : -)
    • viele Leute werden versucht haben, eine solche Anwendung zu brechen - was eine Menge Sicherheits-Fixes bedeutet, was bedeutet, dass eine Anwendung wahrscheinlich sicherer ist als Sie es in einer langen Zeit schreiben werden ...
  • eine vorhandene Open-Source-Anwendung repräsentiert Hunderte von Arbeitstagen
    • bist du wirklich bereit, so viel Zeit damit zu verbringen, an etwas zu arbeiten, das es bereits gibt?
    • wenn Sie für ein Unternehmen arbeiten: Ist Ihr Unternehmen bereit, ein Jahr für Sie zu bezahlen? oder wahrscheinlich sogar mehr? Arbeiten an etwas, das bereits existiert?
    • du glaubst mir nicht Lesen Sie diesen Blog-Beitrag: Code: It's Trivial ; es geht um stackoverflow, aber es wäre genau das gleiche für eine Webmail-Software (mit der Ausnahme, dass stackoverflow aktueller ist - und wahrscheinlich weniger Code-Mitwirkende hat; aber das ist nur eine wilde Vermutung ^^ )

Als Randbemerkung: Wenn Ihr Unternehmen möchte, dass Sie einen Klon von Google Mail erstellen, werden Sie nicht (dasselbe gilt: Wie viele Leute haben an Google Mail gearbeitet? Wie viele Programmierer hat Ihr Unternehmen? Wie viel können Sie? Firma dafür ausgeben?) ...
Und für nur ein paar Dollar pro Jahr könnte Ihr Unternehmen ein " professionelles " Google-Konto für jeden seiner Mitarbeiter haben, übrigens ...


Wenn Sie dennoch ein benutzerdefiniertes handgemachtes Webmail mit einem LA * (M) * P-Stack schreiben möchten/müssen, müssen Sie mindestens Folgendes wissen:

  • Wie man in PHP programmiert
  • Die Grundlagen von IMAP (selbst wenn Sie eine Bibliothek/ein Framework verwenden, erfordert eine so große Anwendung, dass Sie sich mit den zugrunde liegenden Protokollen auskennen, oder dass Sie nie verstehen, warum oder wie. etwas ist schief gelaufen)
  • HTML/CSS/Javascript (mit einigen Kenntnissen von AJax - komm schon, es ist 2009!)
  • Damit Ihre Anwendung einfacher zu warten ist (und das Hinzufügen/Überarbeiten/Ändern von Elementen und das Korrigieren von Fehlern möglich ist) , möchten Sie wahrscheinlich ein Framework verwenden und einige Entwurfsmuster befolgen und am besten Praktiken Methoden Ausübungen
    • Als Beispiel können Sie Frameworks wie symfony oder Zend Framework ansehen
    • Ja, Sie können ohne Framework und/oder ohne MVC entwickeln und anwenden ... Aber .. äh ...

In Anbetracht dessen ist dies kein Problem. (Wenn Sie diesbezüglich noch nicht so gut sind und/oder nicht viel Erfahrung haben, kann es mindestens ein paar Jahre dauern, bis Sie sich das angeeignet haben.) In Anbetracht des Programmierens und Web-Entwickelns können Sie anfangen, über IMAP auf einen Mail-Server zuzugreifen.

Hier gibt es mehrere Möglichkeiten.
Bevor ich mich entscheide, möchte ich mir zumindest diese beiden ansehen:


Sobald Ihre Bewerbung abgeschlossen ist, werden Sie (hoffentlich!) Benutzer bekommen, was mindestens drei Dinge bedeutet:

  • Fehlerberichte ; das sind fast immer dringend für benutzer - wie " OMG Ich verstehe nicht, dass nichts mehr funktioniert, ich muss mein JETZT mailen! "
  • Evolutionswünsche: Benutzer möchten immer mehr Dinge wie " Ich habe das in Google Mail auf meinem persönlichen Konto gesehen. Wie kommt es, dass wir das nicht auch mit unserem Unternehmenskonto haben? Es ist das Werkzeug, mit dem wir arbeiten ! "
  • " Das ist zu langsam, ich kann nicht arbeiten! "; Dann, beten Sie, haben Sie über Skalierbarkeit und Optimierung nachgedacht, als Sie die Anwendung entwickelt haben!

Bist du auch hier bereit, damit umzugehen?


Nun, ich glaube ich habe genug gesagt; Jetzt ist es an der Zeit zu überlegen: Wollen/müssen Sie eine solche Anwendung wirklich von Grund auf neu entwickeln?

Wenn Sie ein bisschen Freizeit haben, könnten Sie vielleicht an einem bereits existierenden Open-Source-Projekt teilnehmen? Das könnte für jeden profitabel sein; -)


Zum Schluss noch eine letzte Sache: Wenn Sie nur zum Spaß an einem solchen Projekt arbeiten möchten, um zu wissen, wie es ist und um mehr über die Webentwicklung zu erfahren, dann tun Sie es !
(Es ist meiner Meinung nach wahrscheinlich der einzige Grund, der es rechtfertigen würde, daran zu arbeiten, übrigens)


Wie auch immer - Viel Glück ! Und/oder viel Spaß!

85
Pascal MARTIN
  1. Lernen Sie den Web-Stack: HTML, Javascript, PHP, Mysql ...
  2. Schreibe ein paar kleine Projekte
  3. Lassen Sie sich irgendwo einstellen, um von erfahrenen Menschen zu lernen
  4. Lernen Sie OOP, Designmuster, Best Practices etc
  5. Wenden Sie an, was Sie seit einigen Jahren gelernt haben

Wenn Sie Punkt 5 passieren, wissen Sie, wie Sie einen bauen.

28
Paul Grigoruta

Mit den Funktionen PHP IMAP können Sie ganz einfach eine einfache erstellen, aber wenn Sie danach fragen müssen, kann dies für Sie etwas kompliziert sein.

Haben Sie in Betracht gezogen, eine vorgefertigte zu verwenden:

6
Greg

Das ist eine RIESIGE Frage!

Ihre Hauptoptionen sind 
1. Integrieren Sie Ihren Code direkt in einen vorhandenen Mailserver
2. Verwenden von IMAP und SMTP zum Kommunizieren mit einem vorhandenen Mail-Server

Nummer 2 ist am einfachsten, da Sie bei Bedarf den Mailserver wechseln können.

und ja, es gibt noch viel mehr zu beachten

1
Dave Archer

Wenn Sie keinen externen Mail-Dienst (wie Google Mail) verwenden, müssen Sie Ihren eigenen Server zum Speichern und Senden von E-Mails konfigurieren. Hier ist ein Tutorial zur Verwendung von Postfix (zum Versenden von E-Mails) und Dovecot (zum Zugreifen auf E-Mails über IMAP). Dieses Tutorial erklärt auch das Einrichten eines Webmail-Systems in SquirrelMail. Sie können dies tun, oder wenn Sie wirklich Ihr eigenes System entwickeln möchten, können Sie eine PHP -Anwendung schreiben, um auf Ihre E-Mails zuzugreifen.

Viel Glück!

0
DLH

Richten Sie ein E-Mail-Konto ein, auf das Sie über POP zugreifen können (Beispiel: Google Mail). Verwenden Sie dann die PHP IMAP-Funktionen, um E-Mails über das POP-Protokoll abzurufen (POP ist wahrscheinlich einfacher als IMAP) ( http://us2.php.net/imap ). Verwenden Sie zum Versenden von E-Mails die Funktionen PHP Mail ( http://de2.php.net/mail ).

0
pbreitenbach

Die naheliegendste Antwort sollte " großartig " sein. 

Genau. Mit der aktuellen sogenannten "most-sexy-Schnittstelle", mit der wir uns beschäftigen, ist es klar, dass wir etwas anderes brauchen. Für diejenigen, die denken, ich mag es, das Rad zu erfinden: Ich nicht! Ich habe gerade eine neue Website installiert und bin sehr zufrieden mit dem Ergebnis. Ich habe im Grunde Tausende von Stunden an freien Entwicklern gearbeitet und würde es hassen, etwas, das ich zuvor gemacht habe, 1000 Mal besser neu zu erfinden. Ich würde mit einer Website 10% davon machen, was ich jetzt hätte und 10 Mal länger ausgegeben hätte. Das Layout ist großartig, die Funktionalität ist großartig. Ich habe Authentifizierung, eine Art soziales Netzwerk mit Gesichtsbuch, einen privaten Bereich für mich und meine Familie, um Dateien, Agenda, Unterstützung für Foto und Video, YouTube-Integration, Facebook-Integration, ... zu speichern. Ich werde mehr haben, ich werde Spiele hinzufügen usw. Alles ziemlich kostenlos (ich habe ungefähr 100 USD für das soziale Netzwerk vom Typ Facebook ausgegeben). Wie: Joomla. Open Source, viele Plugins. Hunderttausende von Entwicklern, Designer arbeiten, Tester usw. Ich würde das niemals selbst schaffen können und auch nicht für immer bezahlen können. Aber es ist kostenlos, also musste ich nicht. Übrigens: Joomla ist nur eine von vielen Open Source-CMS.

Was ich nicht finden kann, ist ein richtiger webbasierter E-Mail-Client, der "sexy" ist und ordnungsgemäß in das cms-System integriert wird. Ich habe einen Roundcube-Wrapper gefunden und gekauft, um ihn in meine wundervolle Website einzufügen. Leider ist dieser sehr alt aussehende E-Mail-Webclient einfach nicht richtig. Es ist langsam, die Interaktion ist dumm, man muss teure Vorlagen kaufen, damit es mit mobilen Geräten funktioniert. Es passt einfach nicht hinein. Es sieht alt aus. 

Joomla bietet eine Menge kostenloser Inhalte, Plugins, Authentifizierung, Adressbücher, mehrsprachige Vorlagen, Unterstützung für mobile Geräte und ALLES, was Sie für eine richtige Website benötigen. Es braucht nur ein bisschen Aufwand, um alles zusammenzukleben (keine Softwareentwicklung).

Jetzt werde ich an einem Plugin arbeiten, um mit meinem Mailserver zu interagieren, dann habe ich dies in kürzester Zeit erledigt.

Nicht neu erfinden, aber auch nicht deprimiert werden.

0
Jo Witters