S'abonner à un site qui n'affiche ni pub ni articles "sponsorisés", ne vend pas vos emails ou vos profils n’est pas une option, c’est la seule solution pour que demain il existe encore ! Soutenez MedShake, abonnez-vous ou faites un don ! [message masqué aux abonnés]

Relever une boite mail Apicrypt en PHP

Publiée le par

logo billet
logo billet
Parce que j'ai cherché un moment et que cela peut en aider d'autres ...
Pour MedShakeEHR j'ai eu besoin d'intégrer des fonctions d'envoi et de réception de mails vers la messagerie Apicrypt. Parlons ici de la relève de la boite intermedic.org.

J'ai longtemps hésité pour savoir à quel niveau travailler et j'ai fini par mettre en place une solution en PHP.
Dans son fonctionnement, la solution est assez proche de ce que propose APICEM avec ApiTunnel : les mails sont relevés, le corps des messages sont déchiffrés puis enregistrés sous forme de fichier texte horodaté, les pièces jointes éventuelles finissent elles dans un dossier du nom du corps du message.
Le déchiffrage du corps et des pièces jointes est assuré par les binaires apicrypt fournis par APICEM.

Si vous cherchez une solution, je vous invite à consulter les sources de MedShakeEHR et plus particulièrement ces fichiers-ci :
- inbox.php qui mis en cron assure la relève toutes les x minutes
- msApicrypt.php qui chiffre/déchiffre corps et pièces jointes
- msPop3.php, classe très très inspirée d'un commentaire sur php.net qui fournit toutes les fonctions de base pour une relève pop
- config.yml qui vous renseignera sur les paramètres de configuration utilisés.

Les plus observateurs noteront le nettoyage assez radical des noms des fichiers des pièces jointes. Vous le verrez, en matière de réception apicrypt, il faut s'attendre à tout et à n'importe quoi. De nombreux logiciels utilisés par nos confrères génèrent parfois des aberrations informatiques. La plus problématique que nous avons rencontrée est l'utilisation de caractères non habituelle dans les noms de fichiers (des parenthèses, des espaces, des tirets non standard ...). Pensez-y si vous vous lancez dans la conception d'une solution maison !

Voilà, il y a sûrement moyen d'optimiser encore tout cela, mais après plusieurs semaines de tests et de production, on peut dire que la solution présentée via MedShakeEHR fonctionne parfaitement !