Send Email to KanBo – Installation (Cloud)

Table of Contents

The Send Email to KanBo feature will allow you to send emails directly to a KanBo Board and create a new Card out of the email. It will also allow you to add email and its attachments to an existing KanBo Card.

Prerequisites

  • Functionality requires having a service account on your Office 365 to serve as a Catch-All account. This Office 365 user needs to have at least Exchange Online license.
  • You should set up an email account for Incoming Email with a custom domain. Learn how to add a custom domain to your Office 365 here: Add a domain to Office 365. When you wish to proceed with a custom domain, create a service account with this domain in his email address (example: mails@yourdomain.com)


1. Creating a Catch-All email address.

You will need to create a Catch-All email account in your Exchange Online.

  1. Create a new account for the Catch-All purpose only in Office 365 Admin Center. Give this account the Exchange Online license. Read more here about assigning Office 365 licenses to users here.
  2. Add accepted domain in your Office 365.
  3. Go to Office 365 and select Admin -> Exchange.
  4. As a next step, please choose the Email Flow in Exchange Admin Center.


  1. Click on the “Accepted Domains”, then select your domain and click on the edit button.


  1. In the new windows, change “Authoritative” to “Internal Relay” and save the changes.


  1. Open Mail Flow section once again. Now select the Rules section and click on + (Add New button) and chose Create New Rule.

  1. When the rule appears, select "More options..." at the bottom of the page. Give this Rule a name like "CatchAll".


  1. Set the following properties to the Rule.
    • In Apply this rule if chose "A recipient's domain is" - here add your domain.
    • In Do the following chose "Redirect the message to" and then, chose your CatchAll Email account from the User Picker.
    • In Do the following Add Action and select "Set the message header to this value..." and "Set the message header 'X-CatchAll-Rule' to value 'Yes'.
    • In Except if... select "The recipient is..." and then, chose your CatchAll Email account from the User Picker.

  2. Now save the Rule.


2. Enabling Incoming Mails in the KanBo appsettings.json

  1. Go to Your KanBo appsettings.json and set "KanBoIncomingMail" to "true".
"IncomingMail": true,

  1. Set KanBoIncomingMailDomain to your sending domain name - the one on which you have the Catch-All mailbox.

"IncomingMailDomain": "yourdomain",

  1. Save the appsettings.json


3. Azure AD permissions

You need to make sure that all the required permissions are present in Azure AD. 
  1. Go to Azure AD and find Your KanBo registration.

  1. Go to API Permissions and select Add a permission.

  1. Select Microsoft Graph.

  1. Select Delegate and the following permisisons.
  • OpenID permissions - Email

  • Mail - Mail.Read and Mail.ReadWrite

  1. Save it. Follow the process, this time select Application permissions.
  2. Here add Mail - Mail.Read and Mail.ReadWrite

  1. Once added, grant Admin's consent.



5. Configure the Email Tool

  1. Contact us at support@kanboapp.com to receive the KanBo.JobHost.zip Package if You do not have it.
  2. Once you download the package, unzip it and move it a chosen location.
  3. Open your directory and start editing appsettings.json
  4. Change the beggining of the file (until "NLog") to this:
  5. {
     "AllowedHosts": "*",
     "ConnectionStrings": {
      "KanBo": "KANBOCONNECTIONSTRING"
     },
     "KanBo": {
      "config": {},
      "assemblies": [],
      "plugins": [
        "load-packages",
       {
        "type": "package",
        "name": "kanbo-api",
        "thumbprint": "KANBO-CERTIFICATE-THUMBPRINT",
        "url": "https://KANBOURL"
       },
       {
        "type": "package",
        "name": "auth-aad",
        "client-id": "KANBO-CLIENT-ID",
        "tenant": "KANBO-TENANT-ID",
        "thumbprint": "KANBO-CERTIFICATE-THUMBPRINT"
       },
       {
        "type": "job.incoming-mail",
        "incoming-mail-domain": "MAIL-DOMAIN",
        "children": [
         [
          "mailbox",
          {
           "type": "graph",
           "email": "USER@MAIL-DOMAIN"
          }
         ]
        ]
       }
      ]
     },
  6. Adjust the uppercased values according to the values in Your KanBo appsettings.json and the previous steps
  7. Save the changes.


6. Add an Azure App Webjob

  1. Pack the EmailToKanBo folder in a .zip file (the package you were working on in the previous steps).
  2. Go to your Azure App -> Webjobs. Select +Add.

  1. Select:
    • Name: yuour custom name
    • File upload: the .zip of EmailToKanBo package, already configured,
    • Type: Triggered,
    • Triggers: Scheduled,
    • CRON Expression: choose the convenient time for you, for information regarding CRON on Azure, see this guide.


7. Use it!

You finished the configuration and installation of the Incoming Mails feature. Now read how to use this feature by reading an article here: Incoming Emails

Recommendation: Set an Outlook retention policy to remove old messages

In order to not allow your Incoming Mails mailbox to clog up, set a simple rule to clean messages older than a week.

  1. As Exchange Administrator, got to Exchange Admin Center -> Compliance Management -> Retention Tags. Create a new rule "applied automatically to a default folder.

  1. Find out a name, select this tag to apply to Inbox only and choose retention period to 90 days.

  1. Go to retention policies and create a new Retention policy with this retention tag assigned.

  1. Go to recipients, select your Incoming Mails account and then in Mailbox features select your newly created Retention Policy.

Was this article helpful?

Please, contact us if you have any additional questions.