2009-11-22 2 views
2

Хорошо, так что это абсолютно убивает меня ... Если бы кто-нибудь мог мне помочь, я был бы самым счастливым человеком на земле ...Pop3 help для реализации на C++!

Итак, мне нужно создать клиент электронной почты C++ для проект в школе, и я использовал библиотеку C++ с открытым исходным кодом POCO, и я отлично справился с работой с серверами электронной почты, которым не нужна аутентификация SSL, но все, что требует SSL, мне не повезло .. .

Вот документация POCO: http://pocoproject.org/docs/

Когда вы идете туда, вы должны нажать на POCO: Net, а затем в нижнем левом фрейме, есть куча документации для сиситем аренда объектов NET ... Я особенно использовал POP3ClientSession.

Я установил OpenSSL и компилируется в библиотеку с поддержкой SSL, но ничего не похоже на работу ... Я также следовал этот учебник: http://pocoproject.org/wiki/index.php/NetSSL

Если кто имеет опыт работы с POCO, или просто 1337 на SSL/C++, если бы вы могли помочь мне получить эту работу, я был бы очень признателен! Я работаю над этим в течение последних 12 часов прямо, чтобы заставить работать SSL, и у вас было 0 удачи.

Хорошо, одна из вещей, о которых я даже не совсем уверен, - это если я правильно скомпилировал ее с SSL ... Я установил OpenSSH на свою машину и перекомпилировал все (занял час !!!). Я, казалось, все компилируется, но когда я пошел, чтобы использовать его со следующим утверждением: включают

#include "Poco/Net/SecureStreamSocket.h" 

Что является то, что документация сказал мне сделать, я получил ошибку ... Они собраны в папку с именем NetSSL_OpenSSL, поэтому я взял заголовки и источники и скопировал их в соответствующее место в папке Net, надеясь, что он сработает. Послесловие Я получил другую ошибку:

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

Но у меня есть файл X509Certificate.h ... Я даже зашел так далеко, как изменение Crypto в источнике в сети (так как его чистая папка, которая теперь держит этот файл), но, как я ожидал, что дул мне в лицо ...

так что, я думаю, главный вопрос будет следующим:

Как я могу отправить электронную почту с помощью POP3 с SSL сокеты вместо стандартного сокеты, используемые POP3ClientSession?

+2

Более конкретный вопрос поможет. – ThisSuitIsBlackNot

+0

Добавил конкретный вопрос внизу, спасибо :) – shawnjan

+0

Опубликовать сообщения об ошибках или описание того, что вы не можете получить. Библиотека возвращает вам какую-то ошибку, которую я предполагаю. Хотя вы можете проверить, поддерживает ли CA, подписавший сертификат SSL удаленных систем, ваше приложение, а также то, что сертификат удаленного сайта по-прежнему действителен. Это довольно распространенные ошибки SSL. – Nathan

ответ

1

Как говорится об ошибках

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

Это означает, что не могу найти файл, который является единственной проблемой !!!

1

Для новичков у POCO есть определенная конфигурация, которую вам нужно сделать.

1) Для SSL (вы используете Microsoft OS), используйте рекомендуемую OpenSSL: http://slproweb.com/products/Win32OpenSSL.htm и скачать * 4-й пункт в этой довольно странной веб-сайта - версия для разработчиков 16Мб, а не «свет» версии (? который не включает и другие необходимые материалы).

2) если вы устанавливаете в C: \ OpenSSL, добавить в системную среду вары

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

(изменить установки базового пути к вашей)

3) Перед запуском сборки, редактировать (в POCO install root) buildwin.cmd; редактировать OPENSSL_DIR , чтобы соответствовать Вашему месту установки

4) запустить сборку (в моем случае, ViStud 2005: build_vs80.cmd)

5) сборка может все еще не(), перейдите в Crypto и NetSSL_OpenSSL в подкаталогах запустите соответствующее решение Visual Studio, и для каждого проекта перейдите в Config. Properties> Linker> General и добавьте $ (YOUR_SSL_ROOT) \ lib в «Дополнительные библиотечные каталоги» (где YOUR_SSL_ROOT - это место, где вы установили OpenSSL). По некоторым причинам это не дает , установленный в этих файлах решений.

6) наконец (и я вижу ваш мыслительный процесс) есть несколько путей включения для POCO; Это не только 1 большое ведро #includes. Вы должны включить каждый из них по отдельности для ваших проектов. Я рекомендовал бы сделать переменные окружения как POCO_ROOT или POCO_HOME , а затем в вашем «дополнительные каталоги включают» добавить что-то вроде этого:

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

Я не знаю, почему они не документируют это в некоторых примечаниях по установке (Я только что сделал). Надеюсь, что помогает.