Exporting and Restoring Mailbox Data

In this article

    You can export and restore the backed-up data from a specific mailbox.

    Request

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

    Request Headers

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

    Request Body

    Export to PST

    Exporting and Restoring Mailbox Data 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 backed-up data from the organization's mailbox to a PST file (Personal Folder File), the request body must contain the exporttoPst action properties:

    Property

    Type

    Description

    contentKeywords

    string

    Specifies the keyword to query backed-up mailbox 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

     }

    }

    The request command will look for a specified keyword in data 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 and Restoring Mailbox Data 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 Exchange Server

    To restore backed-up organization's mailbox data to the same 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.

    For example, "userName": "jsmith@westsupport.onmicrosoft.com".

    userPassword

    string

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

    For example, "userPassword": "paSSw0rd".

    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 data from a specific mailbox.

    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"

     }

    }

    Request Example 2

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

    Request Body:

    {

    "restoretoOriginallocation":

     {

        "userCode": "C6A9DB737"

     }

    }

    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 Exchange Server

    To restore backed-up organization's mailbox data to a different production Exchange server, the request body must contain the restoreTo action properties:

    Property

    Type

    Description

    casServer

    string

    Specifies the Microsoft Exchange server with Client Access Server (CAS) role. The mailbox data will be restored to a specified mailbox server.

    For example, "casServer": "outlook.office365.com".

    mailbox

    string

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

    For example, "mailbox": "djohnes@northsupport.onmicrosoft.com".

    userName

    string

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

    For example, "userName": "djohnes@northsupport.onmicrosoft.com".

    userPassword

    string

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

    For example, "userPassword": "paSSw0rd".

    changedItems

    boolean

    If set to true, indicates that all versions of mailbox items will be restored.

    For example, "changedItems": true.

    deletedItems

    boolean

    If set to true, indicates that deleted mailbox items will be restored.

    For example, "deletedItems": true.

    markrestoredAsunread

    boolean

    If set to true, indicates that restored mailbox data will be marked as unread.

    For example, "markrestoredAsunread": false.

    excludeDrafts

    boolean

    If set to true, indicates that Drafts mailbox folder will not be restored.

    For example, "excludeDrafts": false.

    excludeDeleteditems

    boolean

    If set to true, indicates that Deleted Items mailbox folder will not be restored.

    For example, "excludeDeleteditems": false.

    excludeInplaceholditems

    boolean

    If set to true, indicates that preserved items of mailboxes placed on In-Place Hold will not be restored.

    For example, "excludeInplaceholditems": true.

    excludeLitigationholditems

    boolean

    If set to true, indicates that preserved items of mailboxes placed on Litigation Hold will not be restored.

    For example, "excludeLitigationholditems": true.

    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 data from a specific mailbox.

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

    Response

    The server returns the following response to the client.

    Response Codes

    A successfully completed operation returns a 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:

    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.

    Examples

    Example 1

    The following request exports backed-up organization's mailbox data containing "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/action

     

    Request Header:

    Authorization: Bearer <Access-Token>

     

    Request Body:

    {

     "exporttoPst": {

       "contentKeywords": "support",

       "enablePstSizeLimit": false

     }

    }

     

    Response:

    200 OK

    Example 2

    The following request restores backed-up organization's mailbox data to the same production Exchange server.

    Request:

    POST https://abc.tech.local:4443/v5/RestoreSessions/380d7caf-6294-4a33-b50a-b8aeb13af58c/Organization/Mailboxes/9e9b7199-f547-467a-b580-9d283a75eaad/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 3

    The following request restores all versions of organization's mailbox data to a different Exchange server.

    Request:

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

     

    Request Header:

    Authorization: Bearer <Access-Token>

     

    Request Body:

    {

     "restoreTo":

     {"casServer": "outlook.office365.com",

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

      "userName": "djohnes@northsupport.onmicrosoft.com",

      "userPassword": "p@s$w0rd",

      "changedItems": true,

      "deletedItems": false,

      "markrestoredAsunread": false,

      "excludeDrafts": false,

      "excludeDeleteditems": false,

      "excludeInplaceholditems": false,

      "excludeLitigationholditems": false

     }

    }

     

    Response:

    200 OK

     

    Response Body:

    {

     "createdItemsCount": 3,

     "mergedItemsCount": 2,

     "failedItemsCount": 0,

     "skippedItemsCount": 1

    }

    I want to report a typo

    There is a misspelling right here:

     

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