2009-11-22 98 views
2

好吧,所以這絕對會殺死我...如果有人能幫助我,我會成爲地球上最幸福的人...Pop3幫助C++實現!

所以,我需要創建一個C++電子郵件客戶端項目在學校,我一直在使用POCO開源C++庫,對於使用不需要SSL認證的電子郵件服務器,我一直很好,但任何需要SSL的東西,我都沒有運氣。 。

下面是POCO的文檔:http://pocoproject.org/docs/

當你去那裏,你必須點擊POCO:淨,然後在左下角框架,還有一堆的迪菲文檔租NET對象...我特別使用POP3ClientSession。

我已經安裝OpenSSL和編譯SSL支持庫中,但似乎沒有任何工作......我也跟着這個教程: http://pocoproject.org/wiki/index.php/NetSSL

如果任何人有經驗的POCO,或僅僅是1337在SSL/C++上,如果你能幫我做到這一點,我將非常感激!爲了讓SSL正常工作,我一直在爲此工作12小時,並且運氣不錯。

那麼我不甚確定的一件事情是,如果我正確地使用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文件...我甚至竟然在源換網加密(因爲它的淨文件夾現在拿着這個文件),但我希望,在我的臉炸燬了......

所以,我想主要的問題是以下幾點:

我如何發送使用POP3與SSL套接字而不是標準的電子郵件POP3ClientSession使用的套接字?

+2

更具體的問題會有所幫助。 – ThisSuitIsBlackNot 2009-11-22 07:26:23

+0

在底部添加了一個特定問題,謝謝:) – shawnjan 2009-11-22 07:28:34

+0

發佈錯誤消息或描述你無法工作的內容。圖書館給你回到我想要的某種錯誤。 雖然您可以檢查簽名遠程系統SSL證書的CA是否受應用程序信任,並且遠程站點的證書仍然有效。這些是相當常見的SSL錯誤。 – Nathan 2009-11-22 07:28:50

回答

1

由於錯誤狀態

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

這意味着它無法找到該文件,這是唯一的問題!

1

對於新手來說,POCO有一些你需要做的配置。

1)SSL(您正在使用微軟的操作系統),請使用推薦的OpenSSL:已 http://slproweb.com/products/Win32OpenSSL.htm 在這相當奇怪的網站上下載* 4項 - 16MB的開發者版本,而不是「光」的版本(?沒有包含和其他必要的東西)。

2)如果您安裝到C:\ OpenSSL的,添加到系統環境瓦爾

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

(編輯安裝基本路徑,以你的)

3)運行的版本,編輯之前(在POCO安裝根目錄下)buildwin.cmd;編輯OPENSSL_DIR 以符合您的安裝位置

4)運行構建(在我的情況,2005年ViStud:build_vs80.cmd)

5)構建可能仍會失敗(),進入加密和NetSSL_OpenSSL子目錄, 運行適當的Visual Studio解決方案,併爲每個項目去配置。 Properties> Linker> General,然後將$(YOUR_SSL_ROOT)\ lib添加到「Additional Library Directories」 (其中YOUR_SSL_ROOT是您安裝OpenSSL的地方)。由於某些原因,這些解決方案文件中沒有設置 。 6)最後(我可以看到你的思維過程)POCO有幾種包含路徑;它不僅僅是一大包#包括。您需要分別爲您的項目包含每個項目 。我建議做像POCO_ROOT或環境變量POCO_HOME ,然後在「附加包含目錄」增加這樣的事情:

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

我不知道他們爲什麼不記錄這在一些安裝注意事項(我已經做了)。 希望有所幫助。