Exporting, Restoring, Sending and Saving Mailbox Items

This section explains how to export, restore, send and save backed-up items.

Request

POST https://<hostname>:4443/v5/RestoreSessions/{restoreSessionId}/Organization/Mailboxes/{mailboxId}/Items/action

Request Headers

The request header must contain an authorization token of the current session.

Request Body

Export to PST

Exporting, Restoring, Sending and Saving Mailbox Items Important!

To export data to PST files, you must have a 64-bit version of Microsoft Outlook 2016, Microsoft Outlook 2013 or Microsoft Outlook 2010 installed on a computer running restore sessions.

To export the backed-up items from the organization's mailbox to a PST file (Personal Folder File), the request body must contain the exporttoPst action properties:

Property

Type

Description

items

item[]

Specifies the IDs of mailbox items that you want to export to a PST file. If you omit this property, all backed-up items will be exported.

contentKeywords

string

Specifies the keyword to query backed-up mailbox folder data.

enablePstSizeLimit

boolean

Defines whether to set the size limit for the exported PST file.

If set to true, make sure to specify the pstSizeLimitBytes parameter.

pstSizeLimitBytes

integer

Sets the limit of the exported PST file.

You can choose the limit range from 1 GB to 49 GB.

For example:

Request Body:

{

 "exporttoPst": {

   "contentKeywords": "support",

   "enablePstSizeLimit": true,

   "pstSizeLimitBytes": 1073741824,

   "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

The request command will look for a specified keyword in item names and fields inside the organization's mailbox. The backed-up data with a specified keyword then will be exported to a PST file and placed to a temporary folder on the Veeam Backup for Microsoft Office 365 server. After that, the PST file will be transferred as application/octet-stream media to the client. To download, read, convert to PST or perform other actions with the octet-stream, use features of programming languages.

If the size of the exported data exceeds the limit specified for the PST file, Veeam Backup for Microsoft Office 365 splits the PST file into separate files and exports these files to an archive file of the ZIP format. For example, you specified 1 GB as the PST file size limit. The size of the exported data is 1.5 GB. In this case, Veeam Backup for Microsoft Office 365 will export data to a ZIP archive. The archive will contain two PST files: one PST file of the 1 GB size and another PST file of the 0.5 GB size.

Exporting, Restoring, Sending and Saving Mailbox Items Tip:

You can use Swagger UI to download the octet-stream file by clicking the Download action link, which server returns in the response body after a successfully completed export operation. For more information, see Evaluation in Swagger UI.

Restore to Same Mailbox

To restore backed-up items to the same mailbox on the production Exchange server, the request body must contain the restoretoOriginallocation action properties:

Property

Type

Description

userName

string

Specifies the user name that you want to use for authenticating with the Exchange organization.

userPassword

string

Specifies the password of the user account that you want to use for authenticating with the Exchange organization.

items

item[]

Specifies the IDs of mailbox items that you want to restore. If you omit this property, all backed-up items will be restored to the same mailbox on the production Exchange server.

userCode

string

Specifies the authentication code. For information about how to obtain the code, see Getting Device Code.

This property is required if you want to use a device code for data restore.

applicationId

string

An identification number of the Azure AD application that you want to use for a restore.

applicationCertificate

base64

Specifies the SSL certificate configured for the Azure AD application that you want to use for data restore.

You must provide the certificate as a Base64 string. For information on how to obtain a string, see Converting Certificate to Base64 String.

applicationCertificatePassword

string

A password for the SSL certificate being used.

impersonationAccountName

string

Specifies a user name of the account that will be used as a Microsoft Exchange account to restore backed-up mailbox items.

This property is required if you want to use an application certificate for data restore. Use this property only with the applicationCertificate property.

Converting Certificate to Base64 String

If you want to use a certificate to access an Azure AD application, you must provide the certificate as a Base64 string. To obtain a Base64 string, perform the following steps:

  1. Get the certificate content from a PFX file.
  2. Convert the certificate to a Base64 string.

To do this, you can use the following PowerShell cmdlets:

$pfx_cert = get-content '<path_to_cert>' -Encoding Byte

[System.Convert]::ToBase64String($pfx_cert) | Out-File '<path_to_file>'

where:

For example:

$pfx_cert = get-content 'C:\cert.pfx' -Encoding Byte

[System.Convert]::ToBase64String($pfx_cert) | Out-File 'C:\base64.txt'

Request Example 1

The following example shows how to use a user name and password for a restore.

Request Body:

{

"restoretoOriginallocation":

 {"userName": "jsmith@westsupport.onmicrosoft.com",

  "userPassword": "paSSw0rd",

  "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

Request Example 2

The following example shows how to use a device code for a restore.

Request Body:

{

"restoretoOriginallocation":

 {

   "userCode": "C6A9DB737",

   "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

Request Example 3

The following example shows how to use a certificate for a restore.

Request Body:

{

"restoretoOriginallocation":

 {

     "applicationId" : <app_id>,

     "applicationCertificate": "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",

   "applicationCertificatePassword": "xxx",

   "impersonationAccountName": "xxx",

 }

}

Restore to Different Mailbox

To restore backed-up items to a different mailbox on the production server, the request body must contain the restoreTo action properties:

Property

Type

Description

mailbox

string

Specifies the email address of the mailbox to which you want to restore mailbox items.

items

item[]

Specifies the IDs of mailbox items that you want to restore. If you omit this property, all backed-up items will be restored to the specified mailbox on the production Exchange server.

userName

string

Specifies the user name that you want to use for authenticating with the Exchange organization.

userPassword

string

Specifies the password of the user account that you want to use for authenticating with the Exchange organization.

userCode

string

Specifies the authentication code. For information about how to obtain the code, see Getting Device Code.

This property is required if you want to use a device code for data restore.

applicationId

string

An identification number of the Azure AD application that you want to use for a restore.

applicationCertificate

base64

Specifies the SSL certificate configured for the Azure AD application that you want to use for data restore.

You must provide the certificate as a Base64 string. For information on how to obtain a string, see Converting Certificate to Base64 String.

applicationCertificatePassword

string

A password for the SSL certificate being used.

impersonationAccountName

string

Specifies a user name of the account that will be used as a Microsoft Exchange account to restore backed-up mailbox items.

This property is required if you want to use an application certificate for data restore. Use this property only with the applicationCertificate property.

Send to Same Mailbox

To send backed-up items as attachments in an email message to the same mailbox, the request body must contain the sendtoDefaultaddress action property:

Property

Type

Description

items

item[]

Specifies the IDs of mailbox items that you want to send as attachments. If you omit this property, all backed-up items will be sent as attachments in an email message to the same mailbox.

Request Body:

{

 "sendtoDefaultaddress":

 {

   "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

 

Exporting, Restoring, Sending and Saving Mailbox Items Note:

To be able to send items as attachments you must specify the Veeam Explorer for Microsoft Exchange email settings by sending PUT HTTPS request to the /VEXEmailSettings URL. For more information, see (PUT) /VEXEmailSettings.

Send to Different Mailbox

To send backed-up items as attachments in an email message to a different mailbox, the request body must contain the sendtoDifferentaddress action properties:

Property

Type

Description

items

item[]

Specifies the IDs of mailbox items that you want to send as attachments. If you omit this property, all backed-up items will be sent as attachments in an email message to a different mailbox.

from

string

Specifies the email address from which the restored mailbox items will be sent.

to

string

Specifies the email address to which the restored mailbox items will be sent.

subject

string

Specifies the subject of the email message used for sending restored mailbox items.

text

string

Specifies the body of the email message used for sending restored mailbox items.

For example:

Request Body:

{

 "sendtoDifferentaddress":

 {"from": "j_smith@bestsupport.onmicrosoft.com",

  "to": "r.clark@bestsupport.onmicrosoft.com",

  "subject": "Support Tickets",

  "text": "Please find attached the files you requested",

  "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

 

Exporting, Restoring, Sending and Saving Mailbox Items Note:

If you omit the from property, the default "from" email address specified in Veeam Explorer for Microsoft Exchange email settings will be used. To specify Veeam Explorer for Microsoft Exchange email settings, send PUT HTTPS request to the /VEXEmailSettings URL. For more information, see (PUT) /VEXEmailSettings.

Save As MSG

To save backed-up organization's mailbox items to MSG files (Outlook Message Files), the request body must contain the savetoMsg action property:

Property

Type

Description

item

item[]

Specifies the IDs of mailbox items that you want to save to MSG files. If you omit this property, all backed-up items will be saved to MSG files.

For example:

Request Body:

{

 "savetoMsg":

 {

  "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

The request command will save the backed-up items to MSG files and transfer them to application/octet-stream media. You can use Swagger UI to download the mailbox items in MSG format from the stream by clicking the Download action link in the response body. For more information, see Evaluation in Swagger UI.

Response

The server returns the following response to the client.

Response Codes

A successfully completed operation returns response code 200 OK.

Response Headers

The response to this request contains the following headers. The response may also include additional standard HTTPS headers.

Header

Description

Content-length

The length of the response body.

Content-type

The media type and syntax of the response body message for the requests with the export and save actions: application/octet-stream.

The media type and syntax of the response body message for the requests with the restore and send actions: null.

Response Body

In the response body, the server returns the following data:

  • [For export and save actions] Binary data stream
  • [For the restore action] Information about operation results
  • [For the send action] None

The response body for the restore operation has the following properties:

Property

Type

Description

createdItemsCount

integer

Number of missing items restored from the backup.

mergedItemsCount

integer

Number of changed items restored from the backup.

failedItemsCount

integer

Number of items for which the restore operation failed.

skippedItemsCount

integer

Number of items that were not changed or missing in the original location. Such items are skipped during the restore operation.

Example 1

The following request exports backed-up mailbox items with the specified IDs that contains "support" keyword to a PST file.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

 "exporttoPst": {

   "contentKeywords": "support",

   "enablePstSizeLimit": false,

   "items":  [

     {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

     {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

 

Response:

200 OK

Example 2

The following request saves backed-up mailbox items with the specified IDs to MSG files.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

 "savetoMsg":

 {

  "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

 

Response:

200 OK

Example 3

The following request restores all backed-up mailbox items to the same mailbox on the production Exchange server.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

"restoretoOriginallocation":

 {"userName": "jsmith@westsupport.onmicrosoft.com",

  "userPassword": "paSSw0rd"

 }

}

 

Response:

200 OK

 

Response Body:

{

 "createdItemsCount": 0,

 "mergedItemsCount": 0,

 "failedItemsCount": 0,

 "skippedItemsCount": 1

}

Example 4

The following request restores all backed-up mailbox items to a different mailbox on the production Exchange server.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

 "restoreTo":

 {"userPassword": "Pa$$w0rd",

  "userName": "administrator@westsupport.onmicrosoft.com",

  "mailbox": "djohnes@westsupport.onmicrosoft.com",

 }

}

 

Response:

200 OK

 

Response Body:

{

 "createdItemsCount": 3,

 "mergedItemsCount": 2,

 "failedItemsCount": 0,

 "skippedItemsCount": 1

}

Example 5

The following request sends restored mailbox items with the specified IDs as attachments in the email message to the same mailbox.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

 "sendtoDefaultaddress":

 {

   "items":  [

   {"Id": "74685f6b-16aa-4a78-a44f-05526ce0ae30"},

   {"Id": "70013a9e-c446-429d-aa78-9c8c20d9b814"},

   ]

 }

}

 

Response:

200 OK

Example 6

The following request sends all restored mailbox items as attachments in the email message to a different mailbox.

Request:

POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/Items/action

 

Request Header:

Authorization: Bearer <Access-Token>

 

Request Body:

{

 "sendtoDifferentaddress":

 {"from": "j_smith@bestsupport.onmicrosoft.com",

  "to": "r.clark@bestsupport.onmicrosoft.com",

  "subject": "Support Tickets",

  "text": "Please find attached the files you requested"

 }

}

 

Response:

200 OK

I want to report a typo

There is a misspelling right here:

 

I want to let the Veeam Documentation Team know about that.