日期:2014-05-18  浏览次数:21049 次

如何用c#读取邮箱服务器里面的邮件标题跟内容
如何用c#读取邮箱服务器里面的邮件标题跟内容

邮箱服务器的地址,用户名及密码我都有了,不知道用程序怎么连接到邮箱服务器,并把未读过的邮件的标题跟内容取出来?

请高手帮忙帮忙啊,没头绪....

------解决方案--------------------
C# code
 
using System;
using System.Net.Sockets;
using System.Net;
using System.Security.Cryptography;
using System.IO;

            /////////////////////////////////////////////
            // 类名:Pop3    //
            // 功能:接收电子邮件      //
            /////////////////////////////////////////////

namespace ZTSX.Email
{
/// <summary>
/// Pop3 的摘要说明。
/// </summary>
public class Pop3
{
private string mstrHost  = null;  //主机名称或IP地址
private int mintPort  = 110;  //主机的端口号(默认为110)
private TcpClient mtcpClient  = null;  //客户端
private NetworkStream mnetStream  = null;  //网络基础数据流
private StreamReader m_stmReader  = null;  //读取字节流
private string mstrStatMessage  = null;  //执行STAT命令后得到的消息(从中得到邮件数)

/// <summary>
/// 构造函数
/// </summary>
/// <remarks>一个邮件接收对象 </remarks>
public Pop3()
{
}

/// <summary>
/// 构造函数
/// </summary>
/// <param name="host">主机名称或IP地址 </param>
public Pop3(string host)
{
mstrHost = host;
}

/// <summary>
/// 构造函数
/// </summary>
/// <param name="host">主机名称或IP地址 </param>
/// <param name="port">主机的端口号 </param>
/// <remarks>一个邮件接收对象 </remarks>
public Pop3(string host,int port)
{
mstrHost = host;
mintPort = port;
}

#region 属性

/// <summary>
/// 主机名称或IP地址
/// </summary>
/// <remarks>主机名称或IP地址 </remarks>
public string HostName
{
get{return mstrHost;}
set{mstrHost = value;}
}

/// <summary>
/// 主机的端口号
/// </summary>
/// <remarks>主机的端口号 </remarks>
public int Port
{
get{return mintPort;}
set{mintPort = value;}
}

#endregion

#region 私有方法

/// <summary>
/// 向网络访问的基础数据流中写数据(发送命令码)
/// </summary>
/// <param name="netStream">可以用于网络访问的基础数据流 </param>
/// <param name="command">命令行 </param>
/// <remarks>向网络访问的基础数据流中写数据(发送命令码) </remarks>
private void WriteToNetStream(ref NetworkStream netStream,String command)
{
string strToSend = command + "\r\n";
byte[] arrayToSend = System.Text.Encoding.ASCII.GetBytes(strToSend.ToCharArray());
  netStream.Write(arrayToSend,0,arrayToSend.Length);
}

/// <summary>
/// 检查命令行结果是否正确
/// </summary>
/// <param name="message">命令行的执行结果 </param>
/// <param name="check">正确标志 </param>
/// <returns>
/// 类型:布尔
/// 内容:true表示没有错误,false为有错误
/// </returns>
/// <remarks>检查命令行结果是否有错误 </remarks>
private bool CheckCorrect(string message,string check)
{
if(message.IndexOf(check) == -1)
  return false;
else
  return true;
}

/// <summary>
/// 邮箱中的未读邮件数
/// </summary>
/// <p