/// <summary> /// Create item within a specific folder. /// </summary> /// <param name="toAddress">To address of created item</param> /// <param name="folderId">Parent folder id of the created item.</param> /// <param name="subject">Subject of the item.</param> /// <returns>Id of created item.</returns> protected ItemIdType CreateItem(string toAddress, string folderId, string subject) { CreateItemType createItemRequest = new CreateItemType(); createItemRequest.MessageDispositionSpecified = true; createItemRequest.MessageDisposition = MessageDispositionType.SaveOnly; createItemRequest.SendMeetingInvitations = CalendarItemCreateOrDeleteOperationType.SendToAllAndSaveCopy; createItemRequest.SendMeetingInvitationsSpecified = true; createItemRequest.SavedItemFolderId = new TargetFolderIdType(); DistinguishedFolderIdType distinguishedFolderId = new DistinguishedFolderIdType(); DistinguishedFolderIdNameType distinguishedFolderIdName = new DistinguishedFolderIdNameType(); bool isSuccess = Enum.TryParse<DistinguishedFolderIdNameType>(folderId, true, out distinguishedFolderIdName); if (isSuccess) { distinguishedFolderId.Id = distinguishedFolderIdName; createItemRequest.SavedItemFolderId.Item = distinguishedFolderId; } else { FolderIdType id = new FolderIdType(); id.Id = folderId; createItemRequest.SavedItemFolderId.Item = id; } MessageType message = new MessageType(); message.Subject = subject; EmailAddressType address = new EmailAddressType(); address.EmailAddress = toAddress; // Set this message to unread. message.IsRead = false; message.IsReadSpecified = true; message.ToRecipients = new EmailAddressType[1]; message.ToRecipients[0] = address; BodyType body = new BodyType(); body.Value = Common.GenerateResourceName(this.Site, "Test Mail Body"); message.Body = body; createItemRequest.Items = new NonEmptyArrayOfAllItemsType(); createItemRequest.Items.Items = new ItemType[1]; createItemRequest.Items.Items[0] = message; CreateItemResponseType createItemResponse = this.COREAdapter.CreateItem(createItemRequest); ItemInfoResponseMessageType itemInfo = (ItemInfoResponseMessageType)createItemResponse.ResponseMessages.Items[0]; // Return item id. if (itemInfo.Items.Items != null) { return itemInfo.Items.Items[0].ItemId; } else { return null; } }