2

さて、これは絶対に私を殺しています...誰かが私を助けることができれば、私は地球上で最も幸せな男になるでしょう...

そのため、学校でプロジェクト用のC ++電子メールクライアントを作成する必要があり、POCOオープンソースC ++ライブラリを使用しており、SSL認証を必要としない電子メールサーバーでの作業には問題がありません。 SSLが必要です、私は運がありませんでした...

POCOのドキュメントは次のとおりです:http://pocoproject.org/docs/

そこに行くときは、POCO:Netをクリックする必要があります。次に、左下のフレームに、さまざまなNETオブジェクトのドキュメントがたくさんあります...私は特にPOP3ClientSessionを使用しています。

OpenSSLをインストールし、SSLをサポートするライブラリをコンパイルしましたが、何も機能しないようです...このチュートリアルも実行しました:http: //pocoproject.org/wiki/index.php/NetSSL

誰かがPOCOの経験がある場合、またはSSL / C ++で1337である場合、これを機能させるのを手伝っていただければ幸いです。私はSSLを機能させるためだけに、過去12時間ずっとこれに取り組んできましたが、運が悪かったのです。

よくわからないことの1つは、SSLを使用して正しくコンパイルしたかどうかです...マシンにOpenSSHをインストールし、すべてを再コンパイルしました(1時間かかりました!!!)。私はすべてをコンパイルしたように見えましたが、次のincludeステートメントでそれを使用しようとしたとき:

#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ファイルを持っています...ソースの暗号をネットに変更することさえしました(現在このファイルを保持しているネットフォルダーのため)、しかし私が期待するように、それは私の顔に爆発しました..。。

したがって、主な質問は次のようになると思います。

POP3ClientSessionで使用される標準のソケットの代わりにSSLソケットを使用してPOP3を使用して電子メールを送信するにはどうすればよいですか?

4

2 に答える 2

1

エラーが示すように

致命的なエラーC1083:インクルードファイルを開くことができません:'Poco / Crypto / X509Certificate.h'

これは、ファイルが見つからないことを意味します。これが唯一の問題です!!!

于 2011-09-12T13:31:55.333 に答える
1

初心者の場合、POCOには必要な構成がいくつかあります。

1)SSLの場合(Microsoft OSを使用していますか?)、推奨されるopenSSLを使用します: http ://slproweb.com/products/Win32OpenSSL.htm そしてこのかなり奇妙なWebサイトの*4番目のアイテムをダウンロードします-16MBの開発者バージョンではありません「ライト」バージョン(インクルードやその他の必要なものは含まれていません)。

2)C:\ openSSLにインストールする場合は、システム環境変数に追加します

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

(インストールベースパスを自分のものに編集します)

3)ビルドを実行する前に、(POCOインストールルートで)buildwin.cmdを編集します。インストール場所に一致するようにOPENSSL_DIRを編集します

4)ビルドを実行します(私の場合、ViStud 2005の場合:build_vs80.cmd)

5)ビルドはまだ失敗する可能性があり(!)、CryptoおよびNetSSL_OpenSSLサブディレクトリに移動し、適切なVisual Studioソリューションを実行し、プロジェクトごとにConfigに移動します。[プロパティ]>[リンカー]>[一般]をクリックし、$(YOUR_SSL_ROOT)\ libを[追加のライブラリディレクトリ](YOUR_SSL_ROOTはOpenSSLをインストールした場所)に追加します。何らかの理由で、これはこれらのソリューションファイルに設定されません。

6)最後に(そして私はあなたの思考プロセスを見ることができます)POCOのためのいくつかのインクルードパスがあります。#includesの1つの大きなバケツだけではありません。プロジェクトには、それぞれを個別に含める必要があります。POCO_ROOTやPOCO_HOMEのような環境変数を作成してから、「追加のインクルードディレクトリ」に次のようなものを追加することをお勧めします。

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

なぜ彼らがこれをいくつかのインストールノートに文書化していないのか分かりません(私はちょうどそうしました)。お役に立てば幸いです。

于 2013-03-07T00:11:40.580 に答える