7
votes

Besoin d'un exemple de serveur POP3 ou de serveur IMAP écrit dans Python

Expérimenter avec la messagerie d'application par courrier électronique pour les applications. J'ai déjà créé mon serveur SMTP mais il manque maintenant un mécanisme de livraison centralisé. Je peux créer un mécanisme de livraison de propriété très facilement, mais j'essaie d'utiliser des normes de protocole. Je ne suis pas intéressé par HTTP, FTP ou SOAP, mais uniquement les protocoles de messagerie.

J'ai regardé autour du Net pour les exemples de Python, jusqu'à présent pas de chance. Je ne veux pas dépenser trop de temps et d'efforts, comme la seule étude sur le terrain de la technique pour le moment, pour voir si la livraison ASYNC sur un système de messagerie est une approche viable des communications entre les applications. Je sais sur Sendmail Solutions et je ne suis pas intéressé par cela, car la solution doit être une solution python pleine sur Python, en utilisant des "batteries" dans la mesure du possible, ou peut-être tordé si j'en ai vraiment aussi.

Les seules deux normes que j'ai examinées jusqu'à présent sont IMAP et POP. Je ne peux toujours pas croire qu'à ce jour et que nous avons besoin de deux protocoles d'envoi de courrier et de livraison, s'il y a quelque chose de là-bas qui fait les deux dans un (protocole qui est), je serais le plus heureux de l'examiner. < / p>

Après une enquête plus approfondie, je pense que la seule option viable serait tordue, toute aide avec ce serait bien

mise à jour A abandonné le serveur POP / IMAP, c'est tout un peu trop de travail pour une très petite récompense. Cependant, j'ai utilisé une solution de serveur "hors de la tablette" qui sert de courrier électronique comme IMAP4 et envoie en tant que SMTP. Maintenant que j'ai trouvé cela, je poursuivrai mon enquête sur les services d'application par courrier électronique. Jusqu'à présent créé une application qui télécharge Flux RSS et les emails au format HTML. Les courriels sont filtrés pour le contenu que je suis intéressé par une application de serveur écrite à Python. La prochaine étape est une langue DSL pour communiquer avec un serveur, un peu comme telnet par courrier électronique. Devrait être amusant. Après ce RPC sur e-mail entre plusieurs applications.


0 commentaires

4 Réponses :


5
votes

EDIT: Un exemple simple d'un serveur POP3 peut être trouvé ici: http: // CODE.ACTIVESTEATECOM/RECIPES/534131-PYPOPPER-PLYTHON-POP3-SERVER/ Vous devrez remplacer le mécanisme de service des messages, mais vous auriez besoin de le faire quand même. Pour une implémentation de serveur IMAP utilisant Twisted, voir https://github.com/davglass/twimapd .

Si vous voulez un courrier électronique, vous regardez SMTP, Pop et IMAP. C'est ce que l'email est par définition.

En fait, pour la livraison, SMTP devrait suffire; POP / IMAP est pour la récupération et n'est pas vraiment utile si vos applications peuvent toujours se connecter directement à l'autre.

Si vous n'avez pas besoin d'utiliser un e-mail spécifiquement, vous voudrez peut-être examiner des protocoles alternatifs, tels que XMPP (Jabber): http://fr.wikipedia.org/wiki/extensible_messaging_and_presence_protocol


2 commentaires

Merci pour les définitions. Raté la question cependant. Vous avez des exemples Python pour POP ou IMAP?


Vous donner un +1 sur cela pour votre réponse. Je vérifiais le Twimapd, mais c'est pour avoir livré des messages Twitter et n'agissant pas réellement un serveur IMAP "approprié". Il aurait besoin d'un travail de travail pour le faire fonctionner correctement.



1
votes

Le quotient est un serveur de messagerie qui inclut le support de courrier électronique basé sur Twisted. Il y a quelques années, le développement a débuté sur une nouvelle couche de base de données et la version la plus récente prend en charge SMTP et POP3 . La version plus ancienne a prise en charge de l'IMAP4 , cependant.


1 commentaires

0,30, DAMN c'est tôt les premiers jours pour un serveur de messagerie. Pensez que je vais coller à ma source open, "hors de l'étagère". Ce que j'étais initialement après, était un serveur Python, je pouvais injecter des plug-ends, etc. Je ne pouvais pas en trouver un alors allait écrire le mien. Le bit SMTP était un doddle avec des "batteries" cependant, les trucs IMAP / POP étaient trop hausses.



2
votes

J'ai écrit une simple file d'attente de messages e-mail pour une application à la communication des applications. Vous pouvez trouver les détails ici http: // blog. bootstraptoday.com/2010/11/28/really-Simple-python-Message-queue/

L'idée de base est 1. Dériver une classe de SMTPD.SMTPSERVER. 2. PRODUCTER LA MÉTHODE 'PROCESS_MESSAGE'. 3. Dans 'Process_Message', démarrez un fil. 4. À l'intérieur de la fonction de thread, lisez le contenu du message et exécutez la tâche. 5. Le contenu du message est de simples objets JSON. 6. Le code client est simple. Le client doit simplement envoyer un «e-mail» à ce serveur SMTP local. Envoyez les paramètres de tâche codés au format JSON en tant que contenu de cet email. Donc, le client peut être un simple script shell.

Dans tout ce qu'il s'agissait d'environ 40-50 lignes de code Python.

une idée quelque peu similaire mais beaucoup plus sophistiquée mise en œuvre check Lamson: Traitement différé aux files d'attente


0 commentaires

1
votes

On dirait que vous voulez jouer avec Lamson et en arrière avec postfix (+ Cyrus , éventuellement). < / p>


1 commentaires

En effet, le projet LAMSON semble être Dead depuis mars 2013 . Au lieu de cela, la mise au point semble avoir changé vers Mailman3 , spécifiquement le Mailman Core Dans ce cas.