2009-11-22 6 views
2

Très bien, donc cela me tue absolument ... Si quelqu'un pouvait m'aider, je serais l'homme le plus heureux sur la terre ...Aide Pop3 pour une implémentation C++!

Donc, je dois créer un client de messagerie C++ pour un projet à l'école, et j'ai utilisé la bibliothèque C++ open source de POCO, et j'ai bien travaillé avec des serveurs de messagerie qui n'ont pas besoin d'authentification SSL, mais tout ce qui nécessite SSL, je n'ai pas eu de chance. .

Voici la documentation POCO: http://pocoproject.org/docs/

Quand vous allez là-bas, vous devez cliquer sur POCO: net, puis dans le cadre en bas à gauche, il y a un tas de documents pour diffe louer des objets NET ... J'ai surtout utilisé POP3ClientSession.

J'ai installé OpenSSL et compilé la bibliothèque avec le support SSL, mais rien ne semble fonctionner ... J'ai aussi suivi ce tutoriel: http://pocoproject.org/wiki/index.php/NetSSL

Si quelqu'un a une expérience avec POCO, ou est juste 1337 à SSL/C++, si vous pouviez m'aider à obtenir ce travail je l'apprécierais beaucoup! Cela fait 12 heures que je travaille là-dessus pour que SSL fonctionne et j'ai eu 0 chance. Eh bien l'une des choses dont je ne suis même pas sûr, c'est si je l'ai compilé avec SSL correctement ... J'ai installé OpenSSH sur ma machine, et recompilé tout (a pris une heure !!!). Je semblait avoir tout compilé, mais quand je suis allé à l'utiliser avec la déclaration suivante comprennent:

#include "Poco/Net/SecureStreamSocket.h" 

Ce qui est ce que la documentation m'a dit de faire, je me suis une erreur ... Ils ont compilé dans un dossier appelé NetSSL_OpenSSL, donc j'ai pris les en-têtes et les sources et les ai copiés dans l'endroit approprié dans le dossier net, en espérant que cela fonctionne. Postfaces Je suis une autre erreur:

fatal error C1083: Cannot open include file: 'Poco/Crypto/X509Certificate.h': No such file or directory I dont see Crypto anywhere... 

Mais j'ai le fichier X509Certificate.h ... Je suis même allé jusqu'à changer Crypto dans la source de Net (parce que son dossier net qui tient maintenant ce fichier), mais comme je l'attends, qui a explosé dans mon visage ...

donc, je suppose que la question principale serait la suivante:

Comment puis-je envoyer des e-mails via le protocole POP3 avec les sockets SSL à la place de la norme sockets utilisés par le POP3ClientSession?

+2

Une question plus spécifique aiderait. – ThisSuitIsBlackNot

+0

Ajout d'une question spécifique en bas, merci :) – shawnjan

+0

Afficher des messages d'erreur ou une description de ce que vous ne pouvez pas obtenir de travailler. La bibliothèque vous renvoie une sorte d'erreur que je présume. Bien que vous puissiez vérifier si l'application de certification qui a signé le certificat SSL des systèmes distants est approuvée par votre application et si le certificat du site distant est toujours valide. Ce sont des erreurs SSL assez courantes. – Nathan

Répondre

1

Comme les états d'erreur

fatal error C1083: Cannot open include file: 'Poco/Crypto/X509Certificate.h'

Cela signifie qu'il ne peut pas trouver le fichier, qui est le seul problème !!!

1

Pour un novice, POCO a une certaine configuration que vous devez faire.

1) Pour SSL (utilisez-vous Microsoft OS), utilisez OpenSSL recommandé: http://slproweb.com/products/Win32OpenSSL.htm et télécharger le * 4ème élément dans ce site web assez étrange - la version développeur de 16MB, pas la version "light" (? qui n'a pas inclus et d'autres choses nécessaires).

2) si vous installez dans C: \ OpenSSL, ajouter à l'environnement du système vars

INCLUDE = C:\openSSL\include 
LIB = C:\openSSL\lib 

(modifier le chemin de base installer à la vôtre)

3) avant de lancer la construction, modifier (dans la racine d'installation POCO) buildwin.cmd; modifier OPENSSL_DIR pour correspondre à votre emplacement d'installation

4) éxecuter la construction (dans mon cas, pour ViStud 2005: build_vs80.cmd)

5) la construction peut encore échouer(), allez dans Crypto et NetSSL_OpenSSL Sous-répertoires, exécutez la solution Visual Studio appropriée et, pour chaque projet, accédez à Config. Propriétés> Linker> Général, et ajoutez $ (YOUR_SSL_ROOT) \ lib à "Additional Library Directories" (où YOUR_SSL_ROOT est où vous avez installé OpenSSL). Pour une raison quelconque, ceci n'est pas défini dans ces fichiers de solution. 6) finalement (et je peux voir votre processus de pensée) il y a plusieurs chemins d'inclusion pour POCO; ce n'est pas seulement un gros seau de #includes. Vous devez inclure chacun d'eux individuellement pour vos projets. Je recommande de faire une variable d'environnement comme POCO_ROOT ou POCO_HOME puis dans votre « répertoires supplémentaires comprennent » ajouter quelque chose comme ceci:

$(POCO_BASE)\Foundation\include; 
$(POCO_BASE)\Net\include; 
$(POCO_BASE)\NetSSL_OpenSSL\include; 
$(POCO_BASE)\Crypto\include; 
C:\OpenSSL\include 

Je ne sais pas pourquoi ils ne documentent pas dans certaines notes d'installation (Je viens de faire). Espérons que cela aide.