hueel 发表于 2015-9-11 13:32:42

通过ADO删除Exchange 中邮件的办法

  1.启动 Microsoft Visual Studio.net,新建一个项目
  2.添加COM 引用Microsoft ActiveX Data Object 2.5 Libary
  3:示例
  




try
            {
                ADODB.Connection oCn = new ADODB.Connection();
                ADODB.Recordset oRs = new ADODB.Recordset();
                ADODB.Fields oFields;
                ADODB.Field oField;
                // TODO: Replace the folder URL with your folder URL.
                string sFdUrl = "http://ExchServer/exchange/UserAlias/Inbox";
                oCn.Provider = "exoledb.datasource";
                oCn.Open(sFdUrl, "", "", -1);

                string strSql;
                strSql = "";
                strSql = "select ";
                strSql = strSql + " \"urn:schemas:mailheader:content-class\"";
                strSql = strSql + ", \"DAV:href\" ";
                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";
                //TODO: Replace 'Test.eml' with the name of the mail that you want to delete.
                strSql = strSql + " AND \"DAV:displayname\" = 'Test.eml'";

                oRs.Open(strSql, oCn,
                  ADODB.CursorTypeEnum.adOpenUnspecified,
                  ADODB.LockTypeEnum.adLockOptimistic,
                  1);
                Console.WriteLine(oRs.RecordCount);   
                oRs.MoveFirst();
                while(!oRs.EOF)
                {
                  oFields = oRs.Fields;
                  oField = oFields["DAV:href"];
                  Console.WriteLine(oField.Value);
                  oField = oFields["DAV:displayname"];
                  Console.WriteLine(oField.Value);
                  oRs.Delete(ADODB.AffectEnum.adAffectCurrent);
                  oRs.MoveNext();
                  Console.WriteLine("Item Deleted");
                  Console.WriteLine("--------------------------");
                }
                oCn.Close();
                oCn = null;
                oField = null;
                oFields = null;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
            }
  
  
  
页: [1]
查看完整版本: 通过ADO删除Exchange 中邮件的办法