簡體   English   中英

Exchange Web服務,從收件箱中移動項目,它將從收件箱中刪除但不會顯示在目標文件夾中

[英]Exchange Web Service, move an item from Inbox it gets removed from Inbox but doesn't show up in the destination Folder

我正在通過Web引用訪問Exchange Web服務的客戶端。 (不是托管API)。 這是我第一次與EWS合作,所以我希望這只是一個我忽略的錯誤。

我有一個名為MoveItem的方法,它應該接收電子郵件並將其從收件箱移動到destinationFolder。 當我運行此代碼時,該項目確實從收件箱中消失,但它從未顯示在目標文件夾中。 我花了幾天時間在線查看示例,而且我也找不到其他有類似問題的人。 誰能告訴我我做錯了什么? 提前致謝

斯科特

static void MoveItem(ExchangeServiceBinding esb, BaseFolderType destinationFolder, MessageType msg)
{
ItemIdType[] items = new ItemIdType[1] { (ItemIdType)msg.ItemId };
BaseFolderIdType destFolder = destinationFolder.FolderId;
MoveItemType request = new MoveItemType();
request.ItemIds = items;
request.ToFolderId = new TargetFolderIdType();
request.ToFolderId.Item = destFolder;

try
{
     MoveItemResponseType response = esb.MoveItem(request);
     ArrayOfResponseMessagesType aormt = response.ResponseMessages;
     ResponseMessageType[] rmta = aormt.Items;

    foreach (ResponseMessageType rmt in rmta)
    {
        if (rmt.ResponseClass == ResponseClassType.Error)
        {
              throw new Exception("Item move failed.");
        }
    }
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}

}

絕對不是這里的專家,但這是我用來抓取項目並將其移動到文件夾中的以下代碼:

        Folder rootfolder = Folder.Bind(service, WellKnownFolderName.MsgFolderRoot);
        rootfolder.Load();

        foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
        {
            // Finds the emails in a certain folder, in this case the Junk Email
            FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.JunkEmail, new ItemView(10));

            // Enter your destination folder name below this:
            if (folder.DisplayName == "Example")
            {
                // Stores the Folder ID in a variable
                var fid = folder.Id;
                Console.WriteLine(fid);
                foreach (Item item in findResults.Items)
                {
                    // Load the email, move it to the specified folder
                    item.Load();
                    item.Move(fid);
                }

            }
        }

有關EWS的一點是,當移動到文件夾時,文件夾的ID是關鍵。 在此示例中,我首先在收件箱中找到文件夾,然后訪問郵件。 因此,有關單個郵件的任何代碼都將在找到文件夾之后進行。

我有同樣的問題。 移動的消息不存在於文件夾(outlook.com)中,但可以通過具有新分配ID的API檢索。

Outlook.com可以在加載郵件正文時在搜索中找到錯誤: Error: Your request can't be completed right now. Please try again later. Error: Your request can't be completed right now. Please try again later.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM