2010-11-18 4 views
4

Expérimentation de la messagerie d'application par courrier électronique pour Applications. J'ai déjà créé mon serveur SMTP mais manque maintenant un mécanisme de livraison centralisé. Je peux créer très facilement un mécanisme de livraison, mais j'essaie d'utiliser des normes de protocole. Je ne suis pas intéressé par HTTP, FTP ou SOAP mais seulement les protocoles de messagerie.Besoin d'un exemple de serveur POP3 ou de serveur IMAP écrit en Python

J'ai regardé autour du filet pour des exemples de python, jusqu'ici aucune chance. Je ne veux pas passer trop de temps et d'efforts dans ce domaine, car c'est seulement une étude de terrain technique pour le moment, pour voir si la livraison asynchrone sur un système de messagerie est une approche viable pour les communications entre applications. Je connais les solutions sendmail et cela ne m'intéresse pas, car la solution doit être une solution complète sur Python, en utilisant des "batteries" si possible, ou peut-être Twisted si j'en ai vraiment aussi.

Les deux seules normes que j'ai examinées jusqu'ici sont IMAP et POP. Je n'arrive toujours pas à croire que de nos jours, nous avons besoin de deux protocoles pour l'envoi et la distribution du courrier, s'il y a quelque chose là-bas qui fait les deux en un (Protocole), je serais très heureux de l'examiner.

Après une enquête plus poussée, je pense que la seule option viable serait tordue, toute aide à ce serait génial

mise à jour Gave sur le serveur POP/IMAP, tout est un peu trop de travail pour très peu de récompense. Cependant, j'ai utilisé une solution de serveur «prête à l'emploi» qui sert de courrier électronique en tant qu'IMAP4 et qui est envoyée en tant que SMTP. Maintenant que j'ai trouvé cela, je vais continuer mon enquête sur les services d'application par courrier électronique. Jusqu'à présent, créé une application qui télécharge les flux RSS et les envoie par e-mail au format html. Les emails sont filtrés pour le contenu qui m'intéresse par une application serveur écrite en Python. La prochaine étape est un langage DSL pour communiquer avec un serveur, un peu comme Telnet par email. Devrait être amusant. Après ce RPC sur Email entre plusieurs applications.

Répondre

4

Modifier: Un exemple simple de serveur POP3 peut être trouvé ici: http://code.activestate.com/recipes/534131-pypopper-python-pop3-server/ Vous devrez remplacer le mécanisme de service de messagerie, mais vous devrez le faire de toute façon. Pour une implémentation de serveur IMAP utilisant Twisted, voir https://github.com/davglass/twimapd.

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

En fait, pour la livraison, SMTP devrait être suffisant; POP/IMAP est à récupérer et n'est pas vraiment utile si vos applications peuvent toujours se connecter directement les unes aux autres.

Si vous ne avez pas besoin d'utiliser le courrier électronique spécifiquement, vous voudrez peut-être examiner d'autres protocoles, tels que XMPP (Jabber): http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol

+0

Merci pour les définitions. Manqué la question cependant. Vous avez des exemples de python pour POP ou IMAP? – WeNeedAnswers

+0

Donnez-vous un +1 à cela pour votre réponse. J'ai vérifié le twimapd, mais c'est pour fournir des messages de gazouillement, et n'agissant pas réellement un serveur IMAP "approprié". Il faudrait un peu de travail pour le faire fonctionner correctement. – WeNeedAnswers

1

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 commencé sur une nouvelle couche de base de données, et la version la plus récente prend en charge SMTP et POP3. L'ancienne version a le support IMAP4, cependant.

+0

merci de le regarder. – WeNeedAnswers

+0

0.30, sacrément c'est premiers jours pour un serveur de messagerie. Je pense que je m'en tiendrai à mon open source, "prêt à l'emploi". Ce que j'étais initialement après, c'était un serveur python, je pouvais injecter quelques plug-ins, etc. Je ne pouvais pas en trouver un alors j'allais écrire le mien. Le morceau de SMTP était un doddle avec des "batteries" cependant, le truc d'IMAP/Pop était juste trop de tracas. – WeNeedAnswers

2

J'ai écrit une simple file d'attente de messages par courrier électronique pour l'application à la communication d'application. 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érivez une classe de smtpd.SMTPServer. 2. Remplacez la méthode 'process_message'. 3. Dans 'process_message', démarrez un thread. 4. Dans la fonction de fil, lisez le contenu du message et exécutez la tâche. 5. Le contenu du message est un simple objet JSON. 6. Le code client est simple. Le client doit simplement envoyer un 'email' à ce serveur SMTP local. Envoyez les paramètres de la tâche codés au format JSON en tant que contenu de cet e-mail. Ainsi, le client peut être un script shell simple.

En tout, c'était environ 40-50 lignes de code python.

Un peu la même idée, mais vérification de la mise en œuvre beaucoup plus sophistiqué Lamson : Deferred Processing To Queues

1

On dirait que vous voulez jouer avec Lamson et à l'arrière avec Postfix (+ Cyrus, le cas échéant).

+1

Le lien est erroné ou le projet est parti. –

+0

En effet, le projet Lamson semble être [mort depuis mars 2013] (https://github.com/zedshaw/lamson). Au lieu de cela, le focus semble s'être déplacé vers [Mailman3] (http://wiki.list.org/Mailman3), en particulier le [Mailman Core] (https://pypi.python.org/pypi/mailman) dans ce cas. – Amir

Questions connexes