当前位置:编程学习 > C#/ASP.NET >>

求C#邮件接收类,及调用例子,给高分呀,在线等待

求C#邮件接收类,以及它的调用例子,给高分呀,在线等待 --------------------编程问答-------------------- up --------------------编程问答-------------------- 好像不让发附件。 --------------------编程问答-------------------- 大哥,是pop接收类,不是发送 --------------------编程问答-------------------- using   System; 
using   System.Collections.Generic; 
using   System.Text; 
using   System.Net.Sockets; 
using   System.IO; 
using   System.Collections; 

namespace   ConsoleApplication1 
...{ 
        public   class   Pop3Server 
        ...{ 
                常量区#region   常量区 
                private   const   string   COMMAND_DELE   =   "dele   "; 
                private   const   string   COMMAND_RETR   =   "retr   "; 
                private   const   string   COMMAND_SEP   =   "   "; 
                private   const   string   VALUE_USER   =   "user   "; 
                private   const   string   VALUE_PASS   =   "pass   "; 
                private   const   string   VALUE_ERR   =   "-ERR"; 
                private   const   int   DEFUALT_PORT   =   110; 
                private   const   string   DEFUALT_HOST   =   "localhost"; 
                #endregion 

                变量区#region   变量区 
                private   string   _sHost; 
                private   string   _sPassWord; 
                private   string   _sUserName; 
                private   int   _iPort; 
                private   string   _sErrorMsg   =   ""; 
                private   TcpClient   _tcpClient; 
                private   NetworkStream   ns; 
                #endregion 

                属性区#region   属性区 
                /**////   <summary> 
                ///   邮件服务器名称   defual   laocalhost 
                ///   </summary> 
                public   string   Host 
                ...{ 
                        set 
                        ...{ 
                                _sHost   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   用户密码 
                ///   </summary> 
                public   string   PassWord 
                ...{ 
                        set 
                        ...{ 
                                _sPassWord   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   用户名 
                ///   </summary> 
                public   string   UserName 
                ...{ 
                        set 
                        ...{ 
                                _sUserName   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   端口,defualt   110 
                ///   </summary> 
                public   int   Port 
                ...{ 
                        set 
                        ...{ 
                                _iPort   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   错误信息 
                ///   </summary> 
                public   string   ErrorMsg 
                ...{ 
                        get 
                        ...{ 
                                return   _sErrorMsg; 
                        } 
                } 
                #endregion 

                构造器#region   构造器 
                /**////   <summary> 
                ///   构造器,要求服务器和端口 
                ///   </summary> 
                ///   <param   name="sUserName"> 用户名 </param> 
                ///   <param   name="sPassWord"> 密码 </param> 
                ///   <param   name="sHost"> 服务器名称 </param> 
                ///   <param   name="iPort"> 端口号 </param> 
                public   Pop3Server(string   sUserName,   string   sPassWord,   string   sHost,   int   iPort) 
                ...{ 
                        _sUserName   =   sUserName; 
                        _sPassWord   =   sPassWord; 
                        _sHost   =   sHost; 
                        _iPort   =   iPort; 
                } 
                /**////   <summary> 
                ///   构造器,使用默认端口号、服务器 
                ///   </summary> 
                ///   <param   name="sUserName"> </param> 
                ///   <param   name="sPassWord"> </param> 
                public   Pop3Server(string   sUserName,   string   sPassWord) 
                        :   this(sUserName,   sPassWord,   DEFUALT_HOST,   DEFUALT_PORT) 
                ...{ 
                        // 
                } 
                #endregion 

                可访问方法#region   可访问方法 
                /**////   <summary> 
                ///   连结到服务器,成功返回真 
                ///   </summary> 
                ///   <returns> 成功返回真 </returns> 
                public   Boolean   DoConnect() 
                ...{ 
                        try 
                        ...{ 
                                _tcpClient   =   new   TcpClient(_sHost,   _iPort); 
                                byte[]   outbytes; 
                                string   input; 


                                ns   =   _tcpClient.GetStream(); 
                                StreamReader   sr   =   new   StreamReader(ns); 

                                sr.ReadLine(); 
                                input   =   VALUE_USER   +   _sUserName   +   COMMAND_SEP; 
                                outbytes   =   System.Text.Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                                sr.ReadLine(); 

                                input   =   VALUE_PASS   +   _sPassWord   +   COMMAND_SEP; 
                                outbytes   =   System.Text.Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                                sr.ReadLine(); 
                                return   true; 
                        } 
                        catch   (SocketException   ex) 
                        ...{ 
                                _sErrorMsg   =   ex.SocketErrorCode.ToString(); 
                                return   false; 
                        } 
                        // 
                } 
                /**////   <summary> 
                ///   删除邮件,成功返回真 
                ///   </summary> 
                ///   <param   name="iIndex"> 邮件序号 </param> 
                ///   <returns> 成功返回真 </returns> 
                public   Boolean   DoDeleteMail(int   iIndex) 
                ...{ 
                        Byte[]   outbytes; 
                        string   input; 
                        try 
                        ...{ 
                                input   =   COMMAND_DELE   +   iIndex.ToString()   +   COMMAND_SEP; 
                                outbytes   =   Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                        } 
                        catch   (SocketException   ex) 
                        ...{ 
                                _sErrorMsg   =   ex.SocketErrorCode.ToString(); 
                                return   false; 
                        } 
                        return   true; 

                } 
--------------------编程问答-------------------- using   System; 
using   System.Collections.Generic; 
using   System.Text; 
using   System.Net.Sockets; 
using   System.IO; 
using   System.Collections; 

namespace   ConsoleApplication1 
...{ 
        public   class   Pop3Server 
        ...{ 
                常量区#region   常量区 
                private   const   string   COMMAND_DELE   =   "dele   "; 
                private   const   string   COMMAND_RETR   =   "retr   "; 
                private   const   string   COMMAND_SEP   =   "   "; 
                private   const   string   VALUE_USER   =   "user   "; 
                private   const   string   VALUE_PASS   =   "pass   "; 
                private   const   string   VALUE_ERR   =   "-ERR"; 
                private   const   int   DEFUALT_PORT   =   110; 
                private   const   string   DEFUALT_HOST   =   "localhost"; 
                #endregion 

                变量区#region   变量区 
                private   string   _sHost; 
                private   string   _sPassWord; 
                private   string   _sUserName; 
                private   int   _iPort; 
                private   string   _sErrorMsg   =   ""; 
                private   TcpClient   _tcpClient; 
                private   NetworkStream   ns; 
                #endregion 

                属性区#region   属性区 
                /**////   <summary> 
                ///   邮件服务器名称   defual   laocalhost 
                ///   </summary> 
                public   string   Host 
                ...{ 
                        set 
                        ...{ 
                                _sHost   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   用户密码 
                ///   </summary> 
                public   string   PassWord 
                ...{ 
                        set 
                        ...{ 
                                _sPassWord   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   用户名 
                ///   </summary> 
                public   string   UserName 
                ...{ 
                        set 
                        ...{ 
                                _sUserName   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   端口,defualt   110 
                ///   </summary> 
                public   int   Port 
                ...{ 
                        set 
                        ...{ 
                                _iPort   =   value; 
                        } 
                } 
                /**////   <summary> 
                ///   错误信息 
                ///   </summary> 
                public   string   ErrorMsg 
                ...{ 
                        get 
                        ...{ 
                                return   _sErrorMsg; 
                        } 
                } 
                #endregion 

                构造器#region   构造器 
                /**////   <summary> 
                ///   构造器,要求服务器和端口 
                ///   </summary> 
                ///   <param   name="sUserName"> 用户名 </param> 
                ///   <param   name="sPassWord"> 密码 </param> 
                ///   <param   name="sHost"> 服务器名称 </param> 
                ///   <param   name="iPort"> 端口号 </param> 
                public   Pop3Server(string   sUserName,   string   sPassWord,   string   sHost,   int   iPort) 
                ...{ 
                        _sUserName   =   sUserName; 
                        _sPassWord   =   sPassWord; 
                        _sHost   =   sHost; 
                        _iPort   =   iPort; 
                } 
                /**////   <summary> 
                ///   构造器,使用默认端口号、服务器 
                ///   </summary> 
                ///   <param   name="sUserName"> </param> 
                ///   <param   name="sPassWord"> </param> 
                public   Pop3Server(string   sUserName,   string   sPassWord) 
                        :   this(sUserName,   sPassWord,   DEFUALT_HOST,   DEFUALT_PORT) 
                ...{ 
                        // 
                } 
                #endregion 

                可访问方法#region   可访问方法 
                /**////   <summary> 
                ///   连结到服务器,成功返回真 
                ///   </summary> 
                ///   <returns> 成功返回真 </returns> 
                public   Boolean   DoConnect() 
                ...{ 
                        try 
                        ...{ 
                                _tcpClient   =   new   TcpClient(_sHost,   _iPort); 
                                byte[]   outbytes; 
                                string   input; 


                                ns   =   _tcpClient.GetStream(); 
                                StreamReader   sr   =   new   StreamReader(ns); 

                                sr.ReadLine(); 
                                input   =   VALUE_USER   +   _sUserName   +   COMMAND_SEP; 
                                outbytes   =   System.Text.Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                                sr.ReadLine(); 

                                input   =   VALUE_PASS   +   _sPassWord   +   COMMAND_SEP; 
                                outbytes   =   System.Text.Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                                sr.ReadLine(); 
                                return   true; 
                        } 
                        catch   (SocketException   ex) 
                        ...{ 
                                _sErrorMsg   =   ex.SocketErrorCode.ToString(); 
                                return   false; 
                        } 
                        // 
                } 
                /**////   <summary> 
                ///   删除邮件,成功返回真 
                ///   </summary> 
                ///   <param   name="iIndex"> 邮件序号 </param> 
                ///   <returns> 成功返回真 </returns> 
                public   Boolean   DoDeleteMail(int   iIndex) 
                ...{ 
                        Byte[]   outbytes; 
                        string   input; 
                        try 
                        ...{ 
                                input   =   COMMAND_DELE   +   iIndex.ToString()   +   COMMAND_SEP; 
                                outbytes   =   Encoding.ASCII.GetBytes(input.ToCharArray()); 
                                ns.Write(outbytes,   0,   outbytes.Length); 
                        } 
                        catch   (SocketException   ex) 
                        ...{ 
                                _sErrorMsg   =   ex.SocketErrorCode.ToString(); 
                                return   false; 
                        } 
                        return   true; 

                } 
--------------------编程问答-------------------- 呵呵 一起就是完整的收邮件地址 --------------------编程问答-------------------- 是不是你要的例子撒  --------------------编程问答-------------------- 你怎么知道我的代码不是Pop类呢?我都没贴。你太神了。
只能贴一部分。
// POP3 Client
// ===========
//
// copyright by Peter Huber, Singapore, 2006
// this code is provided as is, bugs are probable, free for any use at own risk, no 
// responsibility accepted. All rights, title and interest in and to the accompanying content retained.  :-)
//
// based on POP3 Client as a C# Class, by Bill Dean, http://www.codeproject.com/csharp/Pop3MailClient.asp 
// based on Retrieve Mail From a POP3 Server Using C#, by Agus Kurniawan, http://www.codeproject.com/csharp/popapp.asp 
// based on Post Office Protocol - Version 3, http://www.ietf.org/rfc/rfc1939.txt

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Net.Security;
using System.Text;


namespace Pop3 {
  // Supporting classes and structs
  // ==============================

  /// <summary>
  /// Combines Email ID with Email UID for one email
  /// The POP3 server assigns to each message a unique Email UID, which will not change for the life time
  /// of the message and no other message should use the same.
  /// 
  /// Exceptions:
  /// Throws Pop3Exception if there is a serious communication problem with the POP3 server, otherwise
  /// 
  /// </summary>
  public struct EmailUid {
    /// <summary>
    /// used in POP3 commands to indicate which message (only valid in the present session)
    /// </summary>
    public int EmailId;
    /// <summary>
    /// Uid is always the same for a message, regardless of session
    /// </summary>
    public string Uid;

    /// <summary>
    /// constructor
    /// </summary>
    public EmailUid(int EmailId, string Uid) {
      this.EmailId = EmailId;
      this.Uid = Uid;
    }
  }


  /// <summary>
  /// If anything goes wrong within Pop3MailClient, a Pop3Exception is raised
  /// </summary>
  public class Pop3Exception:ApplicationException {
    /// <summary>
    /// Pop3 exception with no further explanation
    /// </summary>
    public Pop3Exception() { }
    /// <summary>
    /// Pop3 exception with further explanation
    /// </summary>
    public Pop3Exception(string ErrorMessage) : base(ErrorMessage) { }
  }


  /// <summary>
  /// A pop 3 connection goes through the following states:
  /// </summary>
  public enum Pop3ConnectionStateEnum {
    /// <summary>
    /// undefined
    /// </summary>
    None=0,
    /// <summary>
    /// not connected yet to POP3 server
    /// </summary>
    Disconnected,
    /// <summary>
    /// TCP connection has been opened and the POP3 server has sent the greeting. POP3 server expects user name and password
    /// </summary>
    Authorization,
    /// <summary>
    /// client has identified itself successfully with the POP3, server has locked all messages 
    /// </summary>
    Connected,
    /// <summary>
    /// QUIT command was sent, the server has deleted messages marked for deletion and released the resources
    /// </summary>
    Closed
  }


  // Delegates for Pop3MailClient
  // ============================

  /// <summary>
  /// If POP3 Server doesn't react as expected or this code has a problem, but
  /// can continue with the execution, a Warning is called.
  /// </summary>
  /// <param name="WarningText"></param>
  /// <param name="Response">string received from POP3 server</param>
  public delegate void WarningHandler(string WarningText, string Response);


  /// <summary>
  /// Traces all the information exchanged between POP3 client and POP3 server plus some
  /// status messages from POP3 client.
  /// Helpful to investigate any problem.
  /// Console.WriteLine() can be used
  /// </summary>
  public delegate void TraceHandler(string TraceText);


  // Pop3MailClient Class
  // ====================  

  /// <summary>
  /// provides access to emails on a POP3 Server
  /// </summary>
  public class Pop3MailClient {

    //Events
    //------

    /// <summary>
    /// Called whenever POP3 server doesn't react as expected, but no runtime error is thrown.
    /// </summary>
    public event WarningHandler Warning;

    /// <summary>
    /// call warning event
    /// </summary>
    /// <param name="methodName">name of the method where warning is needed</param>
    /// <param name="response">answer from POP3 server causing the warning</param>
    /// <param name="warningText">explanation what went wrong</param>
    /// <param name="warningParameters"></param>
    protected void CallWarning(string methodName, string response, string warningText, params object[] warningParameters) {
      try {
        warningText = string.Format(warningText, warningParameters);
      } catch {
      }
      if (Warning!=null) {
        Warning(methodName + ": " + warningText, response);
      }
      CallTrace("!! {0}", warningText);
    }


    /// <summary>
    /// Shows the communication between PopClient and PopServer, including warnings
    /// </summary>
    public event TraceHandler Trace;

    /// <summary>
    /// call Trace event
    /// </summary>
    /// <param name="text">string to be traced</param>
    /// <param name="parameters"></param>
    protected void CallTrace(string text, params object[] parameters) {
      if (Trace!=null) {
        Trace(DateTime.Now.ToString("hh:mm:ss ") + popServer + " " + string.Format(text, parameters));
      }
    }

    /// <summary>
    /// Trace information received from POP3 server
    /// </summary>
    /// <param name="text">string to be traced</param>
    /// <param name="parameters"></param>
    protected void TraceFrom(string text, params object[] parameters) {
      if (Trace!=null) {
        CallTrace("   " + string.Format(text, parameters));
      }
    }


    //Properties
    //----------

    /// <summary>
    /// Get POP3 server name
    /// </summary>
    public string PopServer {
      get { return popServer; }
    }
    /// <summary>
    /// POP3 server name
    /// </summary>
    protected string popServer;

--------------------编程问答-------------------- 请问有没有调用这个类的例子呢? --------------------编程问答-------------------- 你们发的类网上都收得到,关键是怎样用啊? --------------------编程问答-------------------- 你在www.codeproject.com搜索一下,有完整的代码。 --------------------编程问答-------------------- 使用

   Pop3.Pop3MimeClient c = new Pop3.Pop3MimeClient("地址", 110, false, cComm.CurSetting.Pop3UserName, cComm.CurSetting.Pop3Password);
            c.Connect();

          
            List<int> ids = new List<int>();
            if (c.GetEmailIdList(out ids))
            {
             }
  c.Disconnect();

    --------------------编程问答-------------------- http://www.codeproject.com/KB/IP/Pop3MailClient.aspx
这有下载
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,