Lua Requires Chilkat v11.0.0+
Lua
Outlook -- Copy Mail Folder and Contents to another Mail Folder
See more Outlook Examples
Copy a mailfolder and its contents to another mailfolder.This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local http = chilkat.Http.new()
-- Use your previously obtained access token here:
http.auth_token = "MICROSOFT_GRAPH_ACCESS_TOKEN"
-- This example will copy /Inbox/abc/subFolderA and its contents to /Inbox/xyz
-- We'll need the folder ids for both source and destination folders..
-- Get the folder IDs from the folder map created by this example
local htFolderMap = chilkat.Hashtable.new()
local sbMap = chilkat.StringBuilder.new()
sbMap:load_file("qa_data/outlook/folderMap.xml", "utf-8")
htFolderMap:add_from_xml_sb(sbMap)
-- Get the IDs for the source and destination folders.
local srcFolderId = htFolderMap:lookup_str("/Inbox/abc/subFolderA")
if not htFolderMap.last_method_success then
print("Folder ID not found")
return
end
local dstFolderId = htFolderMap:lookup_str("/Inbox/xyz")
if not htFolderMap.last_method_success then
print("Destination folder ID not found")
return
end
-- Create a JSON request body with this content:
--
-- {
-- "DestinationId": "destinationId-value"
-- }
local jsonRequestBody = chilkat.JsonObject.new()
jsonRequestBody:update_string("DestinationId", dstFolderId)
http:set_url_var("src_folder_id", srcFolderId)
-- Copy the source folder to the new location
local resp = chilkat.HttpResponse.new()
local success = http:http_json("POST", "https://graph.microsoft.com/v1.0/me/mailFolders/{$src_folder_id}/copy", jsonRequestBody, "application/json", resp)
if not success then
print(http.last_error_text)
return
end
-- A 201 response indicates success.
if resp.status_code == 201 then
print("Folder copied.")
else
print("Response status code = " .. resp.status_code)
print("Error: Folder not copied.")
end
-- Show the response in both cases..
local jsonResponse = chilkat.JsonObject.new()
jsonResponse.emit_compact = false
jsonResponse:load(resp.body_str)
print(jsonResponse:emit())
-- A sample successful JSON response looks like this:
-- {
-- "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#mailFolder",
-- "@odata.type": "#microsoft.graph.mailFolder",
-- "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAM6JqMAAAAA=",
-- "displayName": "subFolderA",
-- "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huwEAAAA=",
-- "childFolderCount": 1,
-- "unreadItemCount": 0,
-- "totalItemCount": 0
-- }