IMAPD
IMAP Server (Bibliothek), um E -Mails an einen E -Mail -Client zu bedienen, der in reinem PHP geschrieben wurde.
Das d in SMTPd steht für Daemon. Dieses Skript kann wie jeder andere Daemon -Prozess im Hintergrund ausgeführt werden. Es ist nicht zum Ausführen als Webapplication gedacht.
Warum dieses Projekt?
Ob Sie es glauben oder nicht, E -Mail ist immer noch die Killer -Funktion des Internets . Es gibt unzählige Projekte zum Zugriff auf und zum Abrufen von E -Mails von einem IMAP/POP3 -Server. Es gibt jedoch nicht so viele, die eine programmgestützte Schnittstelle zur Verfügung stellen, um E -Mails an einen E -Mail -Client bereitzustellen.
Mit dieser Oberfläche können Sie so etwas für Ihre App -Benutzer tun:
+--------------+ +-------+ +------------------------+ +------+
| Your PHP App +---> | IMAPd +---> | MUA (like Thunderbird) +---> | User |
+--------------+ +-------+ +------------------------+ +------+
Dies ist nützlich, wenn Sie eine Messaging -Anwendung in PHP geschrieben haben, aber keine grafische Benutzeroberfläche dafür. Ihre grafische Benutzeroberfläche kann also jeder E -Mail -Client sein. Thunderbird zum Beispiel.
Projektumrisse
Das Projekt beschreibt wie in meinem Blog -Beitrag zur Zusammenarbeit mit Open -Source -Software.
- Der Hauptzweck dieser Software besteht darin, eine serverseitige IMAP-API für PHP-Skripte bereitzustellen.
- Obwohl die RFC -Implementierungen noch nicht abgeschlossen sind, müssen sie streng sein.
- In Zukunft können weitere Funktionen möglich sein. In der Perspektive der Protokolle müssen die Merkmale eine RFC -Implementierung sein.
- Diese Liste ist geöffnet. Fühlen Sie sich frei, Funktionen anzufordern.
Geplante Funktionen
- Vollständige RFC 3501 -Implementierung.
- Ersetzen Sie
ZendMail durch eine bessere Lösung.
Installation
Die bevorzugte Installationsmethode erfolgt über Packagist und Komponist. Führen Sie den folgenden Befehl aus, um das Paket zu installieren, und fügen Sie es für Composer.json hinzu:
composer require thefox/imapd
Verwendung
Weitere Informationen finden Sie unter example.php -Datei.
RFC 3501 Implementierung
Vollständige Implementierung
- 6.1.2 NOOP -Befehl
- 6.1.3 Anmeldungsbefehl
- 6.4.1 Befehl überprüfen
- 6.4.7 Befehl kopieren
- 7.1.1 OK Antwort
- 7.1.2 Keine Antwort
- 7.1.3 Schlechte Antwort
- 7.1.5 Tschüss -Antwort
- 7.4.1 Reaktion Expuger
Unvollständiges Implementierung
- 2.3.1.1 Meldungsattribut für eindeutige Bezeichner (UID)
- 2.3.1.2 Nachrichtensequenznummern -Nachrichten -Nachrichten -Attribut
- 2.3.2 Meldungsattribut von Flags Message
- 6.1.1 Capability -Befehl
- 6.2.2 Befehl authentifizieren
- 6.2.3 Anmeldebefehl
- 6.3.1 Befehl auswählen
- 6.3.6 Befehl abonnieren
- 6.3.7 Der Befehl abbestellen
- 6.3.8 Listenbefehl
- 6.3.9 LSUB -Befehl
- 6.3.11 Anhangbefehl
- 6.4.2 Befehl schließen
- 6.4.4 Suchbefehl
- 6.4.5 Befehl abrufen
- 6.4.6 Store -Befehl
- 6.4.8 UID -Befehl
- 7.1.4 Preauth -Antwort
- 7.2.1 Fähigkeitsantwort
- 7.2.2 Listenantwort
- 7.2.3 LSUB -Antwort
- 7.2.5 Suchantwort
- 7.3.1 existiert die Antwort
- 7.3.2 Aktuelle Antwort
- 7.4.2 Reaktion abrufen
Todo
- Einige Aufgaben werden mit
NOT_IMPLEMENTED kommentiert. Implementieren Sie diese. -
@TODO sollen die PHP -Code -Sniffer -Tests abschließen, bevor sie eine neue Version veröffentlicht.
Alternativen für ZendMail
- Exorus/PHP-MIME-E-Mail-Parser (erfordert Ext-Mailparse-PHP-Erweiterung)
Verwandte Links
- RFC 3501
- E -Mail wird für immer dauern
- E -Mail ist immer noch das Beste im Internet
- Ob Sie es glauben oder nicht, E -Mail ist immer noch die Killer -App
- Entwickler: Hören Sie auf, das Internet neu zu untersuchen!
- Richten Sie Ihren eigenen E -Mail -Server in 5 Schritten ein
Verwandte Projekte
Projektlinks
- Blog -Beitrag über IMAPD
- Packagist -Paket
- Phpweekly - Ausgabe 7. August 2014