Imapd
IMAP Server (Library) pour servir des e-mails à un client de messagerie, écrit en PHP pur.
Le d en SMTPd signifie Daemon. Ce script peut s'exécuter en arrière-plan comme tout autre processus de démon. Il n'est pas destiné à fonctionner comme une application Web.
Pourquoi ce projet?
Croyez-le ou non, le courrier électronique est toujours la fonctionnalité de tueur d'Internet . Il y a des tonnes de projets pour accéder et récupérer les e-mails à partir d'un serveur IMAP / POP3. Mais il n'y a pas tant de gens qui fournissent une interface programmatique pour servir les e-mails à un client de messagerie.
Avec cette interface, vous pouvez faire quelque chose comme ça pour les utilisateurs de votre application:
+--------------+ +-------+ +------------------------+ +------+
| Your PHP App +---> | IMAPd +---> | MUA (like Thunderbird) +---> | User |
+--------------+ +-------+ +------------------------+ +------+
Ceci est utile lorsque vous avez une application de messagerie écrite en PHP mais pas d'interface utilisateur graphique pour elle. Ainsi, votre interface utilisateur graphique peut être n'importe quel client de messagerie. Thunderbird par exemple.
Courses du projet
Le projet décrit comme décrit dans mon article de blog sur la collaboration des logiciels open source.
- L'objectif principal de ce logiciel est de fournir une API IMAP côté serveur pour les scripts PHP.
- Bien que les implémentations RFC ne soient pas encore terminées, elles doivent être strictes.
- Plus de fonctionnalités peuvent être possibles à l'avenir. En perspective des protocoles, les fonctionnalités doivent être une implémentation RFC.
- Cette liste est ouverte. N'hésitez pas à demander des fonctionnalités.
Fonctionnalités planifiées
- Implémentation complète de RFC 3501.
- Remplacez
ZendMail par une meilleure solution.
Installation
La méthode d'installation préférée est via Packagist et compositeur. Exécutez la commande suivante pour installer le package et ajoutez-le comme exigence à Composer.json:
composer require thefox/imapd
Usage
Voir le fichier example.php pour plus d'informations.
Implémentation RFC 3501
Implémentation complète
- 6.1.2 Commande NOOP
- 6.1.3 Commande de déconnexion
- 6.4.1 Vérifier la commande
- 6.4.7 Copier Commande
- 7.1.1 RÉPONSE D'OK
- 7.1.2 Aucune réponse
- 7.1.3 Mauvaise réponse
- 7.1.5 Bye Response
- 7.4.1 Réponse d'évolution
Implémentation incomplète
- 2.3.1.1 Attribut de message d'identifiant unique (UID)
- 2.3.1.2 Numéro de séquence de messages Attribut de message
- 2.3.2 Attribut de message des drapeaux
- 6.1.1 Commande de capacité
- 6.2.2 Authentifier la commande
- 6.2.3 Commande de connexion
- 6.3.1 Sélectionner la commande
- 6.3.6 Commande d'abonnement
- 6.3.7 Commande de désabonnement
- 6.3.8 Commande de liste
- 6.3.9 Commande LSUB
- 6.3.11 Commande d'appel
- 6.4.2 Commande de fermeture
- 6.4.4 Commande de recherche
- 6.4.5 Commande de récupération
- 6.4.6 Commande de magasin
- 6.4.8 Commande UID
- 7.1.4 Réponse préalable
- 7.2.1 Réponse des capacités
- 7.2.2 Énumérer la réponse
- 7.2.3 Réponse LSUB
- 7.2.5 Réponse de recherche
- 7.3.1 existe une réponse
- 7.3.2 Réponse récente
- 7.4.2 Réponse de récupération
FAIRE
- Certaines tâches sont commentées avec
NOT_IMPLEMENTED . Implémenter ces. -
@TODO doit être terminé les tests de renifleur de code PHP avant de publier une nouvelle version.
Alternatives pour ZendMail
- exorus / php-mime-meail-parser (nécessite une extension php ext-mailparse)
Liens connexes
- RFC 3501
- Le courrier électronique durera pour toujours
- Le courrier électronique est toujours la meilleure chose sur Internet
- Croyez-le ou non, le courrier électronique est toujours l'application Killer
- Développeurs: Arrêtez de réapparaître le Web!
- Configurez votre propre serveur de messagerie en 5 étapes
Projets connexes
Liens de projet
- Article de blog sur IMAPD
- Packagiste packagiste
- Phpweekly - numéro 7 août 2014