Exchange (EWS)

Version: 3.0.0

Microsoft Exchange Server is a mail server and calendaring server developed by Microsoft. This integration relies on EWS being enabled for the server.

Connect Exchange with LogicHub

  1. Navigate to Automations > Integrations.
  2. Search for Exchange.
  3. Click Details, then the + icon. Enter the required information in the following fields.
    • Label: Enter a connection name.
    • Reference Values: Define variables here to templatize integration connections and actions. For example, you can use https://www.{{hostname}}.com where, hostname is a variable defined in this input. For more information on how to add data, see 'Add Data' Input Type for Integrations.
    • Verify SSL: Select option to verify connecting server's SSL certificate (Default is Verify SSL Certificate).
    • Remote Agent: Run this integration using the LogicHub Remote Agent.
    • Server Name/IP: Server Name or IP address for Exchange authentication.
    • Username: Username for Exchange authentication.
    • Password: Password for Exchange authentication.
    • Email Address to use: User to login into Exchange as.
    • Exchange Build Version: Exchange build version in form of 'major_version, minor_version, major_build, minor_build'. Example: '15,0,12,34'
    • Timeout (Optional): Seconds to wait before stopping the authentication request (Default is 30 seconds).
  4. After you've entered all the details, click Connect.

Actions for Exchange

Read Email

Pulls emails from a user's inbox.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Mailbox FolderPath and name of the folder from which to pull email messages (typically Inbox).
Mark ReadAutomatically mark messages read when they are pulled by LogicHub (Default is True).Optional
Unread OnlyPull only unread messages (Default is True).Optional
Download AttachmentsAutomatically download attachments (Default is True, Doing so may significantly increase processing time.).Optional
Filter by SubjectJinja-templated subject to filter emails by. A case-insensitive 'contains' match is done.Optional
Message LimitLimit the number of messages to pull at once. (Default is 100 messages).Optional
Maximum Message AgeFilter messages based on maximum age (in seconds) since message receipt time (Default is to retrieve all messages).Optional

Output

Correlated results when Filter By Subject is provided, otherwise uncorrelated results. The output table contains one row per email.

1596

Get Attachments

Pulls the attachments of a set of emails.

Inputs

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDsSelect column holding the emails message-IDs.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • attachments: json array of attachments
1258

Delete Email

Deletes an email by ID.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the message IDs of emails, which need to be deleted.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully deleted email
1258

Mark Email as Read

Marks an email as read by ID.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the message IDs of emails, which need to be marked as read.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully marked email as read.
1258

Mark Email as Unread

Marks an email as unread by ID.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the message IDs of emails, which need to be marked as unread.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully marked email as unread.
1258

Add Categories

Append categories to an email.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the ids of the messages to update.Required
CategoriesA comma-separated list of categories.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully updated email categories.
1258

Replace Categories

Replace an email's categories.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the IDs of the messages to update.Required
CategoriesA comma-separated list of categories.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully updated email categories.
1258

Remove Categories

Remove categories from an email.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDSelect column containing the IDs of the messages to update.Required
CategoriesA comma-separated list of categories.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully updated email categories.
1258

Send Email

Sends an email to an email address.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column containing the email address for recipientsSelect column containing the email addresses to send an email to.Required
Column containing the subject of an emailSelect column containing the subject title for emails.Required
Column containing the body of an emailSelect column containing the body for outbound emails.Required
Column containing the cc on outbound emailSelect column containing an email address to attach as a cc on an outbound email.Optional
Column containing the bcc on outbound emailSelect column containing an email address to attach as a bcc on an outbound email.Optional
File AttachmentColumn containing one or more file IDs to attachment. (Can be a comma separated string of lhub_file_id values or a json dict in the format of {"<lhub_id>":"<file_name>"}).Optional
Attachment File ExtensionIf no file name is provided, add this extension to the attached files.Optional
TypeHTML/Plain-Text. Select the type of email body (default is Plain Text).Optional

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully sent email
1544

Move Email

Moves an email from one folder to another.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Column with email message IDsSelect column containing the message IDs of emails, which need to be moved.Required
Column with folder nameSelect column containing the destination folder name.Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully moved email to folder: .
1250

Reply All

Reply All to the Email.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Email message IDJinja-templated text containing the value of message ID of the email.
Example: {{msgid}}.
Required
BodyJinja-templated text containing the value of body of the email.
Example: {{body}}.
Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully Forwarded e-mail
{
  "msg": "Successfully Replied to the e-mail",
  "msgid": "<SN4PR22MB2949F6E5FBD8F8E6651DF08BDC8C9@SN4PR22MB2949.namprd22.prod.outlook.com>",
  "has_error": false,
  "error": null
}

Forward Email

Forwards an e-mail.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Email message IDJinja-templated text containing the value of message ID of the email.
Example: {{msgid}}.
Required
Recipient EmailJinja-templated text containing the CSVs of the Recipient's emails.
Example: [email protected], {{to}}
Required
BodyJinja-templated text containing the value of body of the email.
Example: {{body}}.
Required

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • msgid: message-id of email
  • msg: Successfully forwarded e-mail
{
  "msg": "Successfully Forwarded e-mail",
  "msgid": "<SN4PR22MB2949F6E5FBD8F8E6651DF08BDC8C9@SN4PR22MB2949.namprd22.prod.outlook.com>",
  "has_error": false,
  "error": null
}

Download Quarantine Message

Download Quarantine Message with given message-id. It will take few minutes to run this action, so in case response gets delayed, then timeout limit has to be increased.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Email Message IDJinja-templated text containing the value of message ID of the email. Example: {{msgid}}Required
Authentication MethodJinja-templated text containing the value of authentication method to be used for this action. Only basic authentication(use 'basic') and certificate based(use 'certificate') are supported. Default is 'basic'.Optional
Self-Signed CertificateUpload a .pfx Self-Signed Certificate file.Optional
Certificate passwordCertificate Password.Optional
Tenant IDJinja-templated text containing the value of the directory ID or verified domain of your Office 365 tenant. Use only in case of Authentication Method is 'certificate'. Example: {{tenantid}}Optional
App IDJinja-templated text containing the value of App ID. Use only in case of Authentication Method is 'certificate'. Example: {{appid}}Optional

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • file-id: file-id of downloaded email
"data":{3 items
    "has_error":boolfalse
    "File-Id ":[1 item
        0:string"2ae60eb911a348bbb3bc5120f0976cef.eml"
    ]
    "error":NULL
}

Download Quarantine Message List

Download all the Quarantine Messages from the start date till the end date. It will take few minutes to run this action, so in case response gets delayed, then timeout limit has to be increased.

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Enter Start DateJinja-templated text containing the start date after which the quarantine messages have to be downloaded. Date in Format MM/DD/YYYY. Example: {{date}}Required
Enter End DateJinja-templated text containing the end date before which the quarantine messages have to be downloaded. Date in Format MM/DD/YYYY. Example: {{date}}Required
Authentication MethodJinja-templated text containing the value of authentication method to be used for this action. Only basic authentication(use 'basic') and certificate based(use 'certificate') are supported. Default is 'basic'.Optional
Self-Signed CertificateUpload a .pfx Self-Signed Certificate file.Optional
Certificate passwordCertificate Password.Optional
Tenant IDJinja-templated text containing the value of the directory ID or verified domain of your Office 365 tenant. Use only in case of Authentication Method is 'certificate'. Example: {{tenantid}}Optional
App IDJinja-templated text containing the value of App ID. Use only in case of Authentication Method is 'certificate'. Example: {{appid}}Optional

Output

A JSON object containing multiple rows of result:

  • has_error: True/False
  • error: message/null
  • file-id: file-ids of downloaded email
"data":{
  "has_error":false,
  "error":null,
  "File Id ":[
        "49fd25d0e39a436dad0e2644913b73e7.eml",
        "7c78cf94f6294bdeb44ca7d4c7d9e7e9.eml",
        "9f8fe488c81e4d359d008d0709b3a1f0.eml",
        "6e7968c33ac9405ea6b47993d04b304f.eml",
        "13dfdf58e65c490d89d74529656c1e67.eml",
        "9b459430deec43418394842f33ab8a0b.eml"
  ]
}

Download Quarantine Message By Certificate (Deprecated)

Download Quarantine Message with given message-id by certificate auth. It will take few minutes to run this action, so in case response gets delayed, then timeout limit has to be increased

Input Field

Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.

Input NameDescriptionRequired
Self-Signed CertificateUpload a .pfx Self-Signed Certificate file.Required
Certificate passwordCertificate Password.Optional
Tenant IDText containing the value of the directory ID or verified domain of your Office 365 tenant. Use only in case of Authentication Method is 'certificate'.}Required
App IDText containing the value of App ID. Use only in case of Authentication Method is 'certificate'.Required
Email Message IDJinja-templated text containing the value of message ID of the email. Example: {{msgid}}Required

Output

JSON containing the following items:

"data":{
    "has_error":false,
    "File-Id ":[
        "2ae60eb911a348bbb3bc5120f0976cef.eml"
    ],
    "error":null
}

Release Notes

  • v3.0.0 - Updated architecture to support IO via filesystem
  • v2.2.1 - Added Build Version optional field at connection level.
  • v2.1.1 - Bug fixed for error: global name 'sys' is not defined.
  • v2.1.0 - Marked action Download Quarantine Message By Certificate as deprecated.
  • v1.14.2 - Added retries in action Download Quarantine Message By Certificate.
  • v1.14.1 - Added new action Download Quarantine Message By Certificate.
  • v1.13.5 - Performance improvement on 2 actions: Download Quarantine Message List and Download Quarantine Message.
  • v1.13.1 - Added certificate option in Quarantine related actions.
  • v1.12.3 - Added 2 actions to download the quarantine message and quarantine message list.
  • v1.11.0 - Added option to add bcc in send mail action.