- 作者:xiaoxiao
- 发表时间:2020-12-23 10:58
- 来源:未知
namespace POP3Client{ using System.IO ; using System.Net; using System.Net.Sockets ; //Please note that all code is copyright 2002 by William J Dean public class POP3client { public enum connect_state {disc,AUTHORIZATION,TRANSACTION,UPDATE}; public string user; public string pwd; public string pop; public bool error; public connect_state state=connect_state.disc ; //borrowed from Agus Kurniawan's article:"Retrieve Mail From a POP3 Server Using C#" at http://www.codeproject.com/csharp/popapp.asp private TcpClient Server; private NetworkStream NetStrm; private StreamReader RdStrm; private string Data; private byte[] szData; private string CRLF = "/r/n"; public POP3client() { //nothing to do..just create to object } public POP3client(string pop_server,string user_name,string password) { //put the specied server (pop_server), user (user_name) and password (password) //into the appropriate properties. pop=pop_server; user=user_name; pwd=password; } #region Utility Methods, some public, some private public string connect (string pop_server) { pop=pop_server; //put the specified server into the pop property return(connect()); //call the connect method } public string connect() { //Initialize to the pop server. This code snipped "borrowed" //with some modifications... //from the article "Retrieve Mail From a POP3 Server Using C#" at //www.codeproject.com by Agus Kurniawan //http://www.codeproject.com/csharp/popapp.asp // create server with port 110 Server = new TcpClient(pop,110); try { // initialization NetStrm = Server.GetStream(); RdStrm= new StreamReader(Server.GetStream()); //The pop session is now in the AUTHORIZATION state state=connect_state.AUTHORIZATION ; return(RdStrm.ReadLine ()); } catch(InvalidOperationException err) { return("Error: "+err.ToString()); } } private string disconnect () { string temp="disconnected successfully."; if(state !=connect_state.disc) { //close connection NetStrm.Close(); RdStrm.Close(); state=connect_state.disc ; } else { temp="Not Connected."; } return(temp); } |