Bonjour à tous!
Ce matin je faisais un peu de R&D au bureau pour savoir comment récupérer des mails d’un compte et sauvegarder les pièces jointes et les traiter plus tard. Après un peu de recherche sur google et twitter, je suis d’abord tombé sur IMAP. Et un peu après sur une classe publiée sur le site phpclasses. La classe marche plutôt pas mal, sauf quelques petits problèmes. Tout d’abord les fichiers utilisent les short_open_tag de PHP, beaucoup de warnings sont levés si les messages traités ne contiennent pas de pièces jointes et enfin des paramètres passés à certaines fonctions sont notés comme constantes, comme par exemple le mode d’ouverture de fichier de la fonction fopen.
Bref, après plusieurs essais et modifications de mon côté, j’ai transformé cette classe en full objet, documentée et ajouter quelques conditions de gestion d’erreurs. La voici en pièce jointe.
Pour ce qui est de l’utilisation, voici une petite démo rapide d’utilisation pour parcourir sa boite mail et sauvegarder les messages dans un dossier défini :
#!/usr/bin/env php #!/usr/bin/env php <?php require_once("attachmentread.class.php"); $host="{host:port/params}BOX"; // voir http://fr.php.net/imap_open $login=""; //imap login $password=""; //imap password $savedirpath="./" ; // attachement will save in same directory where scripts run othrwise give abs path $jk=new MailAttachmentManager($host, $login, $password, $savedirpath); // Creating instance of class#### $jk->getData(); // calling member function ?>
N’hésitez pas a commenter ou faire des suggestions par rapport au code. Prochaine étape trouver un moyen de sécuriser la boite mail qui va recevoir les pièces jointes pour les attacher à un utilisateur d’un site. Un peu comme Flickr qui permet d’ajouter des photos à son stream par mail.
Bon appétit!
