SSL(もしくはTSL)を使用したSMTP通信をWindows Mobileで実装したいのですが、どうすればよいのでしょうか?

ご存じの方教えてください。

ただし、以下の条件でお願いします。
[1]VC++で実装出来ること
[2]自力で(=Outlook経由しない)送信を行うこと
[3]GPL系に代表されるソースコードの開示が求められないこと

■環境
Windows Mobile 6.0 と Windows XP Home SP3
HT-01A(docomo)とX05HT(Softbank)
Visual Studio 2008 Professional Edition付属のVisual C++ 2008 とWM開発に関連するSDK
テスト接続先: Gmail

(以下コメントに続く)

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/01/24 22:10:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ardarim No.1

回答回数897ベストアンサー獲得回数145

ポイント60pt

Windows MobileのWinsockはSSLをサポートしています。

ソケットをSSL化する方法はImplementing a Secure Socket(MSDN)に書かれています。

概要は、以下になります。

(1)setsockoptでSO_SECUREオプションにSO_SEC_SSLをセットする

※何故か、SO_SECUREについての説明が書かれていません。古いバージョンのWindows CEの説明には書かれているのですが。setsockopt(Windows CE 3.0)

(2)WSAIoctl各種パラメータの設定を行う


ソケットをSSL化する作業を一通り行った後は、通常のソケット通信となりますので既に実現済みのコードを適用できるはずです。…が、CceSocketがどこまでサポートしているかがわかりませんので、もしかしたらCceSocketは諦めてWin32のソケットを使っていただくことになるかもしれません。


Web上ではあまり参考になる情報は少ないのですが、こちらに一通りのサンプルがありますので実装の助けになるかと思います。(英語ですが)

Windows Mobile Pocket PC Smartphone Programming: Windows Mobile Secure Socket Implementation Series 1: General Idea

Windows Mobile Pocket PC Smartphone Programming: Windows Mobile Secure Socket Implementation Series 2: Sample Source Code

Windows Mobile Pocket PC Smartphone Programming: Windows Mobile Secure Socket Implementation Series 3: X.509 Certificate and Wildcard Certificate

Windows Mobile Pocket PC Smartphone Programming: Windows Mobile Secure Socket Implementation Series 4: Changes in Windows Mobile 5.0 platform

id:halohalolin

ardarimさんありがとうございます。CceSocketで実装出来るのか試してみます!

2010/01/21 11:55:12
  • id:halohalolin
    (質問本文の続き)

    SSLを使用しないSMTP通信はCceSocketを利用して実装でき、
    Yahoo! Mail等からメール送信出来るようになりました。
    そこで次は、SSLにも対応させてGmailからメール送信出来るようにしたいと考えています。

    そこで目についたのがOpenSSLで( http://www.infoscience.co.jp/technical/openssl/ )
    これを是非自分のアプリに組み込みたい!と参考にしたのが以下のサイトです。

    OpenSSL 0.9.8l - #3(2009-11-07)
    http://snak.tdiary.net/20091107.html

    Library to build OpenSSL for PDAs
    http://www.it.uc3m.es/pervasive/wce_lite_compat/

    しかし、これらのサイトはよく読むとwcecompatを使用しており、wcecompatはLGPLを適応していました。
    http://github.com/mauricek/wcecompat/blob/master/LICENSE

    LGPLのライセンスがあるライブラリにリンクすると、ソースコードが守られないようなので
    他の方法をあたろうと考えています。
    http://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License

    しかしながら、いつまで調べていてもわからなかったので相談させていただきました。
    よろしくお願いいたします。

    ※MSDNにも「SSLを使用したSMTP通信の実装方法について」というタイトルで同様の質問を行いました
    http://social.msdn.microsoft.com/Forums/ja-JP/windowsmobileja/thread/7655f849-4e7a-4628-8597-e1233ade74ac

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません