Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

Outlook -- Move Messages from One Folder to Another

See more Outlook Examples

Demonstrates how to move messages from one folder to another.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Use your previously obtained access token here:
  http.authToken = 'MICROSOFT_GRAPH_ACCESS_TOKEN';

  // This example will move some messages from /Inbox to /Inbox/abc/subFolderB
  // We'll need the folder ids for both source and destination folders..

  // Get the folder IDs from the folder map created by this example 
  final htFolderMap = CkHashtable();
  final sbMap = CkStringBuilder();
  sbMap.loadFile('qa_data/outlook/folderMap.xml', 'utf-8');
  htFolderMap.addFromXmlSb(sbMap);

  // Get the IDs for the source and destination folders.
  final String srcFolderId;
  try {
    srcFolderId = htFolderMap.lookupStr('/Inbox');
  } on ChilkatException {
    print('Folder ID not found');
    return;
  }

  String dstFolderId;
  try {
    dstFolderId = htFolderMap.lookupStr('/Inbox/abc/subFolderB');
  } on ChilkatException {
    print('Folder ID not found');
    return;
  }

  final json = CkJsonObject();
  json.emitCompact = false;

  // Search for emails in this folder with the words "sample" or "example" in the subject, and return only the id and subject.
  http.setUrlVar('folder_id', srcFolderId);
  http.setUrlVar('select', 'id,subject');
  http.setUrlVar('filter', 'contains(subject,\'sample\') or contains(subject,\'example\')');

  final sbResponse = CkStringBuilder();
  try {
    http.quickGetSb('https://graph.microsoft.com/v1.0/me/mailFolders/{\$folder_id}/messages?\$filter={\$filter}&\$select={\$select}', sbResponse);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  json.loadSb(sbResponse);
  // Show the results..
  print(json.emit());

  // Sample results:

  // 	{
  // 	  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('me')/mailFolders('AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA')/messages(id,subject)",
  // 	  "value": [
  // 	    {
  // 	      "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOpwfr\"",
  // 	      "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAAM6Jj10AAAA=",
  // 	      "subject": "A sample email with Amazon in the body"
  // 	    },
  // 	    {
  // 	      "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOpwfo\"",
  // 	      "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAAM6Jj1oAAAA=",
  // 	      "subject": "This is an example email from chilkat.io"
  // 	    }
  // 	  ]
  // 	}

  // ------------
  // Proceed to move (copy) each of the above emails to the destination folder.
  final jsonRequestBody = CkJsonObject();
  final jsonResponse = CkJsonObject();
  jsonResponse.emitCompact = false;

  var messageId = '';
  var i = 0;
  final numEmails = json.sizeOfArray('value');
  while (i < numEmails) {
    json.i = i;

    messageId = json.stringOf('value[i].id');
    http.setUrlVar('message_id', messageId);

    // Create a JSON request body with this content:
    // 
    // 		{
    // 		  "DestinationId": "destinationId-value"
    // 		}
    // 
    dstFolderId = htFolderMap.lookupStr('/Inbox/abc/subFolderB');
    jsonRequestBody.updateString('DestinationId', dstFolderId);
    print('Moving $messageId');

    // Move the message to the destination folder
    final resp = CkHttpResponse();
    try {
      http.httpJson('POST', 'https://graph.microsoft.com/v1.0/me/messages/{\$message_id}/move', jsonRequestBody, 'application/json', resp);
    } on ChilkatException catch (e) {
      print(e.lastErrorText);
      return;
    }

    // A 200 response indicates success.
    if (http.lastStatus == 200) {
      print('Message moved.');
    } else {
      print('Response status code = ${resp.statusCode}');
      print('Error: Message not moved.');
    }

    // Show the response in both cases..
    jsonResponse.load(resp.bodyStr);
    print(jsonResponse.emit());

    i++;
  }

  // ---------------------------------------------------
  // Sample output:

  // Moving AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAAM6Jj2EAAAA=
  // Message moved.
  // {
  //   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#message",
  //   "@odata.type": "#microsoft.graph.message",
  //   "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOp08j\"",
  //   "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huwMAAADn68XtMop0TpsYJGpfKXY9AAAAzomk2wAAAA==",
  //   "createdDateTime": "2017-05-30T23:39:35Z",
  //   "lastModifiedDateTime": "2017-05-31T23:17:59Z",
  //   "changeKey": "CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOp08j",
  //   "categories": [
  //   ],
  //   "receivedDateTime": "2017-05-30T23:39:35Z",
  //   "sentDateTime": "2017-05-30T23:39:18Z",
  //   "hasAttachments": false,
  //   "internetMessageId": "<4aea73c1-2b29-f550-e6f1-eb22785a56f0@chilkatsoft.com>",
  //   "subject": "A sample email with Amazon in the body",
  //   "bodyPreview": "This email has the keyword Amazon in the body..",
  //   "importance": "normal",
  //   "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huwMAAAA=",
  //   "conversationId": "AQQkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAQADxkIFlCV-RFitsiVnh2MsI=",
  //   "isDeliveryReceiptRequested": null,
  //   "isReadReceiptRequested": false,
  //   "isRead": false,
  //   "isDraft": false,
  //   "webLink": "https://outlook.live.com/owa/?ItemID=AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5%2BvF7TKKdE6bGCRqXyl2PQAAAL8huwMAAADn68XtMop0TpsYJGpfKXY9AAAAzomk2wAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem",
  //   "inferenceClassification": "focused",
  //   "body": {
  //     "contentType": "html",
  //     "content": "<html>...</html>\r\n"
  //   },
  //   "sender": {
  //     "emailAddress": {
  //       "name": "Chilkat Software",
  //       "address": "support@chilkatsoft.com"
  //     }
  //   },
  //   "from": {
  //     "emailAddress": {
  //       "name": "Chilkat Software",
  //       "address": "support@chilkatsoft.com"
  //     }
  //   },
  //   "toRecipients": [
  //     {
  //       "emailAddress": {
  //         "name": "Chilkat Software",
  //         "address": "chilkatsoft@outlook.com"
  //       }
  //     }
  //   ],
  //   "ccRecipients": [
  //   ],
  //   "bccRecipients": [
  //   ],
  //   "replyTo": [
  //   ]
  // }
  // 
  // Moving AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAAM6Jj2IAAAA=
  // Message moved.
  // {
  //   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#message",
  //   "@odata.type": "#microsoft.graph.message",
  //   "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOp08k\"",
  //   "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huwMAAADn68XtMop0TpsYJGpfKXY9AAAAzomk3AAAAA==",
  //   "createdDateTime": "2017-05-30T21:07:18Z",
  //   "lastModifiedDateTime": "2017-05-31T23:17:59Z",
  //   "changeKey": "CQAAABYAAADn68XtMop0TpsYJGpfKXY9AADOp08k",
  //   "categories": [
  //   ],
  //   "receivedDateTime": "2017-05-30T21:07:18Z",
  //   "sentDateTime": "2017-05-30T21:06:56Z",
  //   "hasAttachments": false,
  //   "internetMessageId": "<31fbbbce-2c70-c8d1-f0bd-35a7c7694a99@chilkat.io>",
  //   "subject": "This is an example email from chilkat.io",
  //   "bodyPreview": "This is an example email from chilkat.io",
  //   "importance": "normal",
  //   "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAL8huwMAAAA=",
  //   "conversationId": "AQQkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAQAEa8sL3gJ_FNjgk2YkP1eTQ=",
  //   "isDeliveryReceiptRequested": null,
  //   "isReadReceiptRequested": false,
  //   "isRead": true,
  //   "isDraft": false,
  //   "webLink": "https://outlook.live.com/owa/?ItemID=AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5%2BvF7TKKdE6bGCRqXyl2PQAAAL8huwMAAADn68XtMop0TpsYJGpfKXY9AAAAzomk3AAAAA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem",
  //   "inferenceClassification": "focused",
  //   "body": {
  //     "contentType": "html",
  //     "content": "<html>...</html>\r\n"
  //   },
  //   "sender": {
  //     "emailAddress": {
  //       "name": "Chilkat Software",
  //       "address": "admin@chilkat.io"
  //     }
  //   },
  //   "from": {
  //     "emailAddress": {
  //       "name": "Chilkat Software",
  //       "address": "admin@chilkat.io"
  //     }
  //   },
  //   "toRecipients": [
  //     {
  //       "emailAddress": {
  //         "name": "Chilkat Software",
  //         "address": "chilkatsoft@outlook.com"
  //       }
  //     }
  //   ],
  //   "ccRecipients": [
  //   ],
  //   "bccRecipients": [
  //   ],
  //   "replyTo": [
  //   ]
  // }
  // 
}