请问如何使用c#访问exchangeServer,并获取邮件?
请大家给我点思路或者做法?我在网上看到有这样的做法 :有以下疑问 :1、 oCn.Provider 是做什么的?
2、strSql组装的信息是什么呢?
3、若有例子请指点一下我,谢谢!
using System;namespace Samples
{
    class Class1
    {
        static void Main(string[] args)
        {
            try 
            {
            ADODB.Connection oCn = new ADODB.Connection();
            ADODB.Recordset oRs = new ADODB.Recordset();            ADODB.Fields oFields;
            ADODB.Field oField;            // TODO:
            string sFdUrl = "http://ExchServer/Exchange/UserAlias/Inbox";

            oCn.Provider = "exoledb.datasource";
            oCn.Open(sFdUrl, "", "", -1);              if(oCn.State == 1)
            {
                Console.WriteLine("Good Connection");
            }
            else
            {
                Console.WriteLine("Bad Connection");
            }
            string strSql;
            strSql = "";
            strSql = "select ";
            strSql = strSql + " \"urn:schemas:mailheader:content-class\"";
            strSql = strSql + ", \"DAV:href\" ";
            strSql = strSql + ", \"urn:schemas:mailheader:content-class\" ";
            strSql = strSql + ", \"DAV:displayname\"";
            strSql = strSql + " from scope ('shallow traversal of " + "\"";
            strSql = strSql + sFdUrl + "\"') ";
            strSql = strSql + " WHERE \"DAV:ishidden\" = false";
            strSql = strSql + " AND \"DAV:isfolder\" = false";
            oRs.Open(strSql, oCn, 
                ADODB.CursorTypeEnum.adOpenUnspecified, 
                ADODB.LockTypeEnum.adLockOptimistic, 1);            // As an example, you only retrieve the first message.
            // You can use a while loop through each message.            // Get the first message.
            oRs.MoveFirst();            // Get Recordset fields.
            oFields = oRs.Fields;

            string sUrl;
            oField = oFields["DAV:href"];
            sUrl = oField.Value.ToString();            CDO.Message iMsg = new CDO.Message();
            iMsg.DataSource.Open(sUrl, oRs.ActiveConnection, 
                ADODB.ConnectModeEnum.adModeReadWrite,
                ADODB.RecordCreateOptionsEnum.adFailIfNotExists,
                ADODB.RecordOpenOptionsEnum.adOpenSource,
                "", "");            Console.WriteLine("{0}", iMsg.Sender);
            Console.WriteLine("{0}", iMsg.Subject);
            Console.WriteLine("{0}", iMsg.TextBody);            // Get message fields.
            oFields = iMsg.Fields;
            for(int i = 0; i < oFields.Count; i++)
            {
                oField = oFields[i];
                Console.WriteLine("{0} : {1}", oField.Name, oField.Value);
            }
            oRs.Close();
            oCn.Close();
 
            oCn = null;
            oRs = null;
            oFields = null;
            oField = null;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
            }
        }
    }
}