★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質比智力重要,覺悟比素質更重要
          posts - 110,comments - 35,trackbacks - 0

          The instantiation of the POP is in Main() like this:
          POP pop = new POP("pop-server", "loginname", "password"); You must replace "pop-server" with the name of your POP server, "loginname" with your own log in, and "password" with your password. The class has two methods. The Connect method takes care of actually logging in to the server. The TCPClient class is used to establish the connection. The "user" and "pass" commands are used to login. Connect returns a NetworkStream object created during the connection process. The second method is GetNumberOfNewMessages, which returns the number of unread messages on the server. The response to the "stat" command is parsed to extract the number of new messages.



          Requirement:


          Requires .NET SDK



          How To Compile?



          csc /r:System.Net.dll /r:System.IO.dll pop.cs


          Source Code


          using System.Net.Sockets;
          using System.IO;
          using System.Net;
          using System;


          class POP
          {
          string POPServer;
          string user;
          string pwd;
          public POP(){}
          public POP(string server, string _user, string _pwd)
          {
          POPServer = server;
          user = _user;
          pwd = _pwd;
          }
          private NetworkStream Connect()
          {
          TCPClient sender = new TCPClient(POPServer,110);
          Byte[] outbytes;
          string input;
          NetworkStream ns = null;
          try{
          ns = sender.GetStream();
          StreamReader sr = new StreamReader(ns);
          Console.WriteLine(sr.ReadLine() );


          input = "user " + user + "\r\n";
          outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
          ns.Write(outbytes,0,outbytes.Length) ;
          Console.WriteLine(sr.ReadLine() );


          input = "pass " + pwd + "\r\n";
          outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
          ns.Write(outbytes,0,outbytes.Length) ;
          Console.WriteLine(sr.ReadLine() );


          return ns;
          }
          catch(InvalidOperationException ioe){
          Console.WriteLine("Could not connect to mail server");
          return ns;
          }
          }
          public int GetNumberOfNewMessages()
          {
          Byte[] outbytes;
          string input;
          try{
          NetworkStream ns = Connect();
          StreamReader sr = new StreamReader(ns);


          input = "stat" + "\r\n";
          outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
          ns.Write(outbytes,0,outbytes.Length);
          string resp = sr.ReadLine();
          Console.WriteLine(resp);
          string[] tokens = resp.Split(new Char[] {' '});


          input = "quit" + "\r\n";
          outbytes = System.Text.Encoding.ASCII.GetBytes(input.ToCharArray());
          ns.Write(outbytes,0,outbytes.Length);
          Console.WriteLine(sr.ReadLine());


          sr.Close();
          ns.Close();
          return tokens[1].ToInt32();
          }
          catch(InvalidOperationException ioe){
          Console.WriteLine("Could not connect to mail server");
          return 0;
          }
          }
          public static void Main()
          {
          POP pop = new POP("pop-server", "loginname", "password");
          Console.WriteLine("New Messages = {0}", pop.GetNumberOfNewMessages() );
          Console.ReadLine();
          }
          }

          posted on 2006-09-30 11:34 圣域飛俠 閱讀(175) 評論(0)  編輯  收藏 所屬分類: 轉載
          主站蜘蛛池模板: 临漳县| 桓台县| 临潭县| 库车县| 崇阳县| 遂溪县| 封丘县| 冷水江市| 鹤山市| 屏南县| 霞浦县| 济阳县| 日照市| 陇南市| 湖口县| 滁州市| 呈贡县| 内黄县| 松原市| 吉隆县| 邢台县| 新蔡县| 普格县| 顺平县| 江山市| 娄底市| 萍乡市| 万载县| 横峰县| 石台县| 内乡县| 阳信县| 平度市| 舒城县| 霍山县| 安平县| 宕昌县| 太康县| 双辽市| 湾仔区| 阳春市|