Adsense_top

2010年1月25日月曜日

C# POP3へのログイン

メール受信をC#行うためのコードを書いていきたいと思います。


POP3、IMAP4 や 認証方法など結構多岐にわたるので、今日は基本的ところでなPOP3への平文でログインして閉じるだけのコードです。

public void Connect(string host, int port, string user, string pass)
{
string result;
Stream stream;
TcpClient tcp;
tcp = new TcpClient();
try
{
// 接続
tcp.Connect(host, port);
// NetworkStreamを得る
stream = tcp.GetStream();
// タイムアウト時間の設定
stream.ReadTimeOut = 30 * 1000;
stream.WriteTimeOut = 30 * 1000;
// StreamReader、StreamWriterを被せる
StreamReader reader = new StreamReader(stream, Encoding.ASCII);
StreamWriter writer = new StreamWriter(stream, Encoding.ASCII);
// 改行文字とバッファフラッシュを設定
writer.NewLine = "\r\n";
writer.AutoFlush = true;
// サーバーからの挨拶コードを得る
result = reader.Readline();
if(!result.StartsWith("+OK"))
throw new Exception(string.Format(
"サーバーからの応答コードが不正です:{0}", result));
// USERコマンド
writer.WriteLine("USER {0}", user);
result = reader.Readline();
if(!result.StartsWith("+OK"))
throw new Exception(string.Format(
"サーバーからの応答コードが不正です:{0}", result));
// PASSコマンド
writer.WriteLine("PASS {0}", pass);
result = reader.Readline();
if(!result.StartsWith("+OK"))
throw new Exception(string.Format(
"サーバーからの応答コードが不正です:{0}", result));
writer.WriteLine("QUIT");
result = reader.Readline();
if(!result.StartsWith("+OK"))
throw new Exception(string.Format(
"サーバーからの応答コードが不正です:{0}", result));
}
finally
{
stream.Close(); 
tcp.Close();
}
}

コメントである程度わかると思いますが、ソース内容の説明は、今日は眠たいので次回にします。


0 件のコメント:

コメントを投稿