添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
            ExchangeServiceBinding esb = new




    
 ExchangeServiceBinding();
            esb.Credentials = new NetworkCredential(username, password, domain);
            esb.Url = url;
            ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
            FindItemType findItemRequest = new FindItemType();
            findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
            ItemResponseShapeType itemProperties = new ItemResponseShapeType();
            ////获取邮件地址
            PathToExtendedFieldType PidTagSenderSmtpAddress = new PathToExtendedFieldType();
            PidTagSenderSmtpAddress.PropertyTag = "0x5D01";
            PidTagSenderSmtpAddress.PropertyType = MapiPropertyTypeType.String;
            // Define which item properties are returned in the response
            itemProperties.BaseShape = DefaultShapeNamesType.AllProperties;
            findItemRequest.ItemShape = itemProperties;  // Add properties shape to request
            itemProperties.AdditionalProperties = new BasePathToElementType[1];
            //获取邮件地址的
            itemProperties.AdditionalProperties[0] = PidTagSenderSmtpAddress;
            // Identify which folders to search to find items
            DistinguishedFolderIdType[] folderIDArray = new DistinguishedFolderIdType[1];
            folderIDArray[0] = new DistinguishedFolderIdType();
            folderIDArray[0].Id = DistinguishedFolderIdNameType.inbox;
            // Add folders to request
            findItemRequest.ParentFolderIds = folderIDArray;
            //Create unread only restriction --------------------------
            RestrictionType restriction = new RestrictionType();
            IsEqualToType isEqualTo = new IsEqualToType();
            PathToUnindexedFieldType pathToFieldType = new PathToUnindexedFieldType();
            pathToFieldType.FieldURI = UnindexedFieldURIType.messageIsRead;
            FieldURIOrConstantType constantType = new FieldURIOrConstantType();
            ConstantValueType constantValueType = new ConstantValueType();
            constantValueType.Value = "0";
            constantType.Item = constantValueType;
            isEqualTo.Item = pathToFieldType;
            isEqualTo.FieldURIOrConstant = constantType;
            restriction.Item = isEqualTo;
            findItemRequest.Restriction = restriction;
            FindItemResponseType findItemResponse = esb.FindItem(findItemRequest);
            FindItemResponseMessageType folder = (FindItemResponseMessageType)findItemResponse.ResponseMessages.Items[0];
            ArrayOfRealItemsType folderContents = new ArrayOfRealItemsType();
            folderContents = (ArrayOfRealItemsType)folder.RootFolder.Item;
            ItemType[] items = folderContents.Items;
            if (items == null)
                return;
            ProcessEmail(items[i], basicTime);
 DateTime createdate;
            int timezone = int.Parse(Helper.GetWebconfig("timezone"));  
            string username = Helper.GetWebconfig("username");
            string password = Helper.GetWebconfig("password");
            string domain = Helper.GetWebconfig("domain");
            string exchangewebservice = Helper.GetWebconfig("exchangewebservice");
            ExchangeServiceBinding esb = new ExchangeServiceBinding();
            esb.Credentials = new NetworkCredential(username, password, domain);
            esb.Url = exchangewebservice;
            string subpath = DateTime.Now.ToString("yyyy-MM");
            string path = Helper.GetWebconfig("helpdesk_webconfig").Replace("web.config", "uploads") + @"\" + subpath + @"\";
            string phypath = path;
            if (!System.IO.Directory.Exists(phypath))
                System.IO.Directory.CreateDirectory(phypath);
            string filepre = DateTime.Now.ToString("yyyyMMddHHmmss_");
            #endregion
             GetItemType g = new GetItemType();  
            g.ItemShape = new ItemResponseShapeType();  
            g.ItemShape.BaseShape = DefaultShapeNamesType.AllProperties;
            g.ItemIds = new BaseItemIdType[] { itemType.ItemId };  
            GetItemResponseType p_mailResponse = esb.GetItem(g);  
            ArrayOfResponseMessagesType arrMail = p_mailResponse.ResponseMessages;  
            ResponseMessageType[] responseMessages = arrMail.Items;
                if (respmsg is ItemInfoResponseMessageType)
                    ItemInfoResponseMessageType createItemResp = (respmsg as ItemInfoResponseMessageType);
                    ArrayOfRealItemsType aorit = createItemResp.Items;
                    foreach (MessageType myMessage in aorit.Items)
                        if (myMessage.Body.BodyType1 == BodyTypeType.Text)
                            contents = myMessage.Body.Value.Replace(Environment.NewLine, "<br />");
                            contents = myMessage.Body.Value;
                        if (myMessage.From != null)
                            email = myMessage.From.Item.EmailAddress;
                #endregion
                #region 邮件附件
                if (itemType.HasAttachments)
                    ItemInfoResponseMessageType res = (ItemInfoResponseMessageType)respmsg;
                    if (res != null)
                        if (res.ResponseClass == ResponseClassType.Success && res.Items.Items != null && res.Items.Items.Length > 0)
                            ItemType inboxItem2 = res.Items.Items[0];
                            int m = 0;
                            string pname = "";
                            string vname = "";
                            string ext = "";
                            string url = Helper.GetWebconfig("helpdesk_url");
                            string app = Helper.GetApp(url);
                            string absurl = "";
                            #region 保存附件
                            AttachmentType[] attachments = inboxItem2.Attachments;
                            for (int attachmentCount = 0; attachmentCount < attachments.Length; attachmentCount++)
                                GetAttachmentType getAttachmentRequest = new GetAttachmentType();
                                RequestAttachmentIdType[] attachmentIDArray = new RequestAttachmentIdType[1];
                                attachmentIDArray[0] = new RequestAttachmentIdType();
                                attachmentIDArray[0].Id = attachments[attachmentCount].AttachmentId.Id;
                                getAttachmentRequest.AttachmentIds = attachmentIDArray;
                                GetAttachmentResponseType getAttachmentResponse = esb.GetAttachment(getAttachmentRequest);
                                AttachmentInfoResponseMessageType attachmentResponseMessage = getAttachmentResponse.ResponseMessages.Items[0] as AttachmentInfoResponseMessageType;
                                if (attachmentResponseMessage != null)
                                    if (attachmentResponseMessage.ResponseClass == ResponseClassType.Success && attachmentResponseMessage.Attachments != null && attachmentResponseMessage.Attachments.Length > 0)
                                        AttachmentType attachment = attachmentResponseMessage.Attachments[0];
                                        if (attachment is FileAttachmentType)
                                            FileAttachmentType fat = (FileAttachmentType)attachment;
                                            ext = Helper.GetExt(fat.Name);
                                            pname = phypath + filepre + m + ext;
                                            vname = url + "uploads/" + subpath + "/" + filepre + m + ext;
                                            absurl = url + "uploads/" + subpath + "/" + filepre + m + ext;
                                            File.WriteAllBytes(pname, fat.Content);
                                            contents = contents.Replace("cid:" + attachment.ContentId, vname);
                                            m++;
                                            contents += " <br>附件" + (m + 1) + ": <a href=" + absurl + ">" + absurl + "</a><br>";
                            #endregion
                #endregion