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

ljk2510 2007-12-19 11:57:27
求C#邮件接收类,以及它的调用例子,给高分呀,在线等待
...全文
201 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljk2510 2007-12-19
  • 打赏
  • 举报
回复
请问有没有调用这个类的例子呢?
cpp2017 2007-12-19
  • 打赏
  • 举报
回复
你怎么知道我的代码不是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;

swafboxh 2007-12-19
  • 打赏
  • 举报
回复
是不是你要的例子撒
swafboxh 2007-12-19
  • 打赏
  • 举报
回复
呵呵 一起就是完整的收邮件地址
swafboxh 2007-12-19
  • 打赏
  • 举报
回复
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;

}
swafboxh 2007-12-19
  • 打赏
  • 举报
回复
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;

}
ljk2510 2007-12-19
  • 打赏
  • 举报
回复
大哥,是pop接收类,不是发送
cpp2017 2007-12-19
  • 打赏
  • 举报
回复
好像不让发附件。
qq22345111 2007-12-19
  • 打赏
  • 举报
回复
up
lovehongyun 2007-12-19
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/IP/Pop3MailClient.aspx
这有下载
cpp2017 2007-12-19
  • 打赏
  • 举报
回复
使用

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();

cpp2017 2007-12-19
  • 打赏
  • 举报
回复
你在www.codeproject.com搜索一下,有完整的代码。
ljk2510 2007-12-19
  • 打赏
  • 举报
回复
你们发的类网上都收得到,关键是怎样用啊?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧