この SSPI SChannel SMTPS の例は、Visual Studio 2008 でそのままコンパイルおよび実行する必要があります。
http://www.coastrd.com/c-schannel-smtp (元のサイトは死んでいるようですが、幸いにも WaybackMachine にアーカイブされています)
SChannel は、SSL/TLS プロトコルをラップする GSS API の Microsoft 実装です。
SChannel を利用する利点:
- 悲惨な詳細は、SSPI によって開発者から隠されています。
- 最終的なアプリケーションを実行するために追加のセットアップは必要ありません。
- SChannel は、オペレーティング システムの不可欠な部分です。
- Windows ME/2000/XP/... プラットフォームでは、SChannel がデフォルトでインストールおよび構成されます。
- SChannel 呼び出しは、GSS API 標準に従います。
- 証明書を作成/インストールする必要はありません
- サードパーティの dll (1MB 以上) を出荷してインストールする必要はありません
コードは、次のようなセッションを生成する必要があります。
----- SSPI 初期化済み
----- WinSock 初期化済み
----- 資格情報初期化
済み ----- サーバーに接続済み
70 バイトのハンドシェイク データを送信
974 バイトのハンドシェイク データを受信
182 バイトのハンドシェイク データを送信
43 バイトのハンドシェイク データを受信しました
ハンドシェイクが成功しました
----- クライアント ハンドシェイクが実行されました
----- サーバー資格情報が認証されました
サーバーの件名: C=US、S=California、L=Mountain View、O=Google Inc、CN=smtp.gmail.com
サーバー発行者: C=ZA、S=Western Cape、L=Cape Town、O=Thawte Consulting cc 、OU=Certification Services Division、CN=Thawte プレミアム サーバー CA、E=premium-server@thawte.com
----- 証明書チェーンが表示されました
----- サーバー証明書が検証さ
れました ----- サーバー証明書のコンテキストが解放されました
プロトコル: TLS1
暗号: RC4
暗号強度: 128
ハッシュ: MD5
ハッシュ強度: 128
鍵交換: RSA
鍵交換強度: 1024
----- セキュア接続情報
64 バイトの (暗号化された) アプリケーション データを受信 復号化された
データ: 43 バイト
220 mx .google.com ESMTP 6sm17740567yxg.66
7 バイトの平文を送信:
EHLO
28 バイトの暗号化されたデータが送信されました
169 バイトの (暗号化された) アプリケーション データが受信され
まし
た
復号化された
データ
: 148
バイト拡張ステータスコード
250 パイプライン
7 バイトの平文を送信:
QUIT
28 バイトの暗号化されたデータが送信された
69 バイトの (暗号化された) アプリケーション データが受信された 復号化された
データ: 48 バイト
221 2.0.0 接続を閉じている
----- SMTP セッションの完了
送信終了通知
23 バイトのハンドシェイク データが送信されました
----- サーバーから切断されました -----
クリーンアップ
の開始 ----- すべて完了 -----