Est-ce difficile de créer un client de messagerie? - Python
Je suis de s'aventurer en territoire inconnu ici...
Je suis en train de travailler sur la façon dont dur elle pourrait être de mettre en place un client de Messagerie à l'aide de Python:
- Récupération des e-mails
- D'envoi de courriel
- E-mail formatage
- Courriel rendu
Aussi je me demandais si tous les protocoles sont facile/difficile à soutenir par exemple, SMTP, IMAP, POP3, ...
J'espère que quelqu'un pourrait me diriger dans la bonne direction 🙂
source d'informationauteur RadiantHex
Vous devez vous connecter pour publier un commentaire.
Le langage Python offre support raw pour le besoin de protocoles dans sa bibliothèque standard. Correctement à l'aide d'alors, et, correctement l'analyse et de l'assemblage d'un "moderne" de l'e-mail, cependant, peut être difficile à faire.
Aussi, vous n'avez pas dit si vous voulez créer une interface graphique pour votre client e-mail, si vous voulez avoir une bonne interface graphique -- jusqu'au point d'être utilisable, il est tout à fait beaucoup de travail.
Local de stockage du courrier serait la plus facile - sauf si vous voulez à mettre en œuvre correctement un fichier mbox format RFC-4155 ainsi que d'autres logiciels peuvent facilement lire/écrire les messgaes vous avez récupéré, vous pouvez les stocker dans comme des Objets Python à l'aide d'un ORM ou Orientée Objet base de données, tels que la ZODB, ou MongoDB.
Si vous voulez plus qu'un jouet app e-mail, vous aurez beaucoup de travail correctement l'encodage têtes d'e-mail, par exemple, le serveur d'authentification et de sécurisation de l'authentification et de couches de transport, le décodage de l'adresse e-mail corps du texte lui-même pour les non ASCII messages. Bien que les modules sur le Python standard de la bibliothèque de mettre en œuvre beaucoup de que, de leur documentation est plus court que sur des exemples - et une adresse e-mail du client aurait à utiliser l'ensemble de puis.
Certainement l'endroit pour commencer un client e-mail, même un jouet, serait de prendre un coup d'oeil sur les plus récentes RFC pour e-mail (et vous aurez à choisir puis à partir de là http://www.ietf.org/rfc/rfc-index depuis la recherche pour "e-mail rfc" sur google donne un mauvais résultat).
Je pense que vous trouverez beaucoup de clients important de pièces préemballés:
Récupération des e-mails - je pense que c'est couvert par la plupart des bibliothèques Python.
D'envoi de courrier électronique - Ce ne serait pas difficile et il est plus que probable couvert.
E-mail de mise en forme, je sais que c'est car je l'ai juste utilisé pour analyser unique et multipart e-mails pour un client.
E-mail de rendu, je voudrais tirer un convertisseur HTML de quelque sorte. Il est une interface Python pour le moteur de rendu du projet Mozilla. Je parie qu'il y a d'autres moteurs de rendu qui ont python interfaces. Je sais que wxWidgets a quelques HTML simple, les installations et serait beaucoup plus léger. Venez à penser de la Mozilla moteur peut avoir un tas d'autres fonctions que vous auriez besoin. Vous avez à la recherche de chacune des parties.
Il y a beaucoup plus que ce qui est listé ci-dessus. Comme tout ce qui vaut la peine alors qu'il ne sera pas construite en un jour. Je voudrais exposer précisément ce que vous voulez qu'il fasse. Puis commencer à élaborer un prototype. Tout simplement construire un cadre simple qui fait des choses de base. Comme seulement ont-il en charge la partie texte d'un message ayant pas de code html. Puis construire que sur la.
Je suis étonné par la richesse de codage des modules disponibles avec Python. J'avais besoin de filtrer les messages au format html, analyser les feuilles de style, d'incorporer les styles, et des tas d'autres choses. Je trouve juste au sujet de chaque fonction que j'ai besoin dans une bibliothèque Python quelque part. J'ai été particulièrement heureux quand j'ai découvert que peu de css les feuilles sont au format gzip qu'il y a un module pour ça!
Donc, si vous êtes sérieux au sujet de puis creuser. Vous apprendrez BEAUCOUP. 🙂
De ne pas vous décourager, mais pourquoi voulez-vous faire un client de messagerie?
Un beaucoup des clients de messagerie il existe déjà, pour à peu près tout ce qu'un client veut. Un plein-fléchie client, un client léger, en ligne de commande, webmail, tout cela existe déjà.
Peut-être vous voulez offrir quelques fonctionnalités uniques pour vos utilisateurs, mais je pense que vous feriez mieux de par l'écriture d'un plugin, par exemple pour Thunderbird. Ou si vous êtes vraiment intéressé par le client lui-même, vous devriez essayer de contribuer à un projet déjà existant.
Mais sur le sujet, écrit le client avant la fin est tout aussi difficile que l'écriture de l'interface graphique, mais le mail internes sont assez facile en Python, parce qu'il a beaucoup de bibliothèques intégrées pour des choses comme IMAP, SMTP, POP3.
Si j'étais vous, je voudrais vérifier le code source de l'email existant-clients pour vous faire une idée: thunderbird, sylpheed-claws, mutt...
Selon l'ensemble des fonctionnalités que vous souhaitez soutenir, c'est un grand projet.
Dépend à quel niveau vous souhaitez créer le client. Vous pouvez rapidement fouet quelque chose avec des bibliothèques comme smtplib pour la manipulation de connexion/de données. Et les savoirs traditionnels pour une interface graphique. Mais encore une fois tout dépend du niveau de finition de votre après.
Rapidement un outil de base pour vous-même: Facile. (Avec les bibliothèques)
L'écriture d'un plein feutured client de messagerie: Dur.
Au lieu d'utiliser une bibliothèque, vous pouvez également trouver un projet open source, vous pouvez contribuer. Je vous recommande d'avoir un coup d'oeil à Mailpile