首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

那位高手帮我看看关于pop收邮件的有关问题!

2011-12-10 
那位高手帮我看看关于pop收邮件的问题!!stringPOPServerstringuserstringpwdpublicPOP(){}publicPOP(st

那位高手帮我看看关于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();          
    }          
    }      
以上是从网上找的一段代码
当运行到outbytes       =       System.Text.Encoding.ASCII.GetBytes      
    (input.ToCharArray());  
是不能再向下运行并且什么都不动了不知道为什么!!!
有没有高手帮我看看呀!

[解决办法]



你的这个代码没有问题,
只要是格式没有错,
就应该可以运行得起来。

不过,在这里说明一下,
在你的代码里面,
可以这样说,
这不算是什么收邮件的代码,
因为你至少没有发送命令字“RETR”,
只能说是一个统计邮件数(stat)的代码。

在你已有的命令字中,
“user”是用来发送登录邮箱的用户名,
“pass”是用来发送登录邮箱的密码,
“stat”是用来统计邮件数的,
“quit”则是退出邮箱的命令。

在这里有一些说明
http://www.cnpaf.net/Class/POP3/0532918532634401.html

收邮件也不是很复杂,
发“retr”命令字把邮件收回来了,
再进行解码,
就可以看到原来所发出去的东西的原样了。
就解码来说,
目前比较常用到的是进行BASE64解码。


热点排行