程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#在域環境中連接echange服務器的代碼

c#在域環境中連接echange服務器的代碼

編輯:C#入門知識

string userName = "你的用戶名";
            string passWord ="你的密碼";
            string domain = "域名";
            string url = "https://exchange服務器地址/EWS/Exchange.asmx";
            ExchangeServiceBinding exchangeServer = new ExchangeServiceBinding();
            ICredentials creds = new NetworkCredential(userName, passWord, domain);
            // 建立信任連接
            exchangeServer.Credentials = creds;
            exchangeServer.Url = url;

            // 定義郵件的收件箱
            DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
            folderIDArray[0] = new DistinguishedFolderIdType();
            folderIDArray[0].Id = DistinguishedFolderIdNameType.inbox;

            PathToUnindexedFieldType ptuftDisplayName = new PathToUnindexedFieldType();
            ptuftDisplayName.FieldURI = UnindexedFieldURIType.folderDisplayName;

            PathToExtendedFieldType pteftComment = new PathToExtendedFieldType();
            pteftComment.PropertyTag = "0x3004"; // PR_COMMENT
            pteftComment.PropertyType = MapiPropertyTypeType.String;

            // 定義GetFolderType對象,設置相應屬性
            GetFolderType myfoldertype = new GetFolderType();
            myfoldertype.FolderIds = folderIDArray;
            myfoldertype.FolderShape = new FolderResponseShapeType();
            myfoldertype.FolderShape.BaseShape = DefaultShapeNamesType.IdOnly;
            myfoldertype.FolderShape.AdditionalProperties = new BasePathToElementType[2];
            myfoldertype.FolderShape.AdditionalProperties[0] = ptuftDisplayName;
            myfoldertype.FolderShape.AdditionalProperties[1] = pteftComment;

            // 獲取服務器中的文件夾的集合
            GetFolderResponseType myFolder = exchangeServer.GetFolder(myfoldertype);

            // 獲取收件箱
            FolderInfoResponseMessageType firmtInbox = (FolderInfoResponseMessageType)myFolder.ResponseMessages.Items[0];

            // 顯示收件箱
            //Console.WriteLine(string.Format("got folder: {0}", firmtInbox.Folders[0].DisplayName));


            PathToUnindexedFieldType ptuftSubject = new PathToUnindexedFieldType();
            ptuftSubject.FieldURI = UnindexedFieldURIType.itemSubject;

            PathToUnindexedFieldType ptuftBody = new PathToUnindexedFieldType();
            ptuftBody.FieldURI = UnindexedFieldURIType.itemAttachments;

            PathToExtendedFieldType pteftFlagStatus = new PathToExtendedFieldType();
            pteftFlagStatus.PropertyTag = "0x1090"; // PR_FLAG_STATUS
            pteftFlagStatus.PropertyType = MapiPropertyTypeType.Integer;

            // 定義FindItemType對象,准備獲取收件箱中的集合
            FindItemType findItemRequest = new FindItemType();
            findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
            findItemRequest.ItemShape = new ItemResponseShapeType();
            findItemRequest.ItemShape.BaseShape = DefaultShapeNamesType.AllProperties;


            findItemRequest.ParentFolderIds = new FolderIdType[1];
            findItemRequest.ParentFolderIds[0] = firmtInbox.Folders[0].FolderId;
            // 獲取郵件
            FindItemResponseType firt = exchangeServer.FindItem(findItemRequest);
            // 循環迭代每一封郵件
            foreach (FindItemResponseMessageType firmtMessage in firt.ResponseMessages.Items)
            {
                //如果包含郵件,顯示出來
                if (firmtMessage.RootFolder.TotalItemsInView > 0)
                {
                    // 循環迭代每一封郵件詳細信息
                    foreach (ItemType it in ((ArrayOfRealItemsType)firmtMessage.RootFolder.Item).Items)
                    {
                        if (((MessageType)(it)).IsRead == false)
                        {
                      &nbs

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved