一般に公開されているソフトウェア使えば済む話だけど、自分で実装できたほうがいいものは結構ある。
できれば、クラスライブラリも使わず、完全フルスクラッチのほうが望ましいのだけど、長いものには巻かれてもいい。
POP3の危険性を認識している人は少ないのか、ほとんどがデフォルトでPOP3で、APOPですらない設定だったりする。
ユーザ名とパスワードを平文で送るのは、個人情報ダダ漏れが嫌な現代人にあるまじき放置状態と言っても良いのではないだろうかと。
デフォSSL&可能ならAPOPにしたらいかがなものか。
あぁ、いかがなものか。
#サーバ側が対応してないんだから、仕方ない。
で、無料のメールサーバでPOP3 over SSL対応にhotmailが該当するということを知り、ちょいと試してみることに。
#「ちょい」で済む話じゃなかったりもする。
まだSTATしか発行してないけど、とりあえず、SSLで通信できてるっぽい。
C#コード的には、以下をやってるに過ぎない。
PopClient pop = new PopClient(popHost.Text, int.Parse(popPort.Text), popSsl.Text == "SSL");
pop.Login(userId.Text, userPass.Text);
pop.Stat();
PopClientってのが、自作なんだけどな。
内部でSystem.Net.Security.SslStreamクラスを使っているのがミソ。
#実際は、SslStreamクラスを内蔵したSslTcpClientクラス(自作)を継承している。
以下、個人的なメモ。
リスト終端の.のみ行やメール本文をうまく受信することができず、苦戦。
→StreamReaderクラスを毎回作っちゃだめだということがわかったので、保持するようにして解決。
→コマンド発行毎にStreamReaderクラスをnull解放すればよいかも・・・
メール本文のエンコードって、どうするのが正しいのだろうか?
ヘッダ部分のcharsetを読み取って処理するのが正しいのだろうか・・・
コメントしちゃいなよ