Skip to content
Message Header Analyzer Add-in For Outlook
JavaScript HTML CSS Batchfile
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Content Add scroll bars to diagnostics. Apr 16, 2018
Pages reorder script includes to load dependencies first Dec 7, 2019
Resources [ImgBot] Optimize images Mar 20, 2019
Scripts remove dead enable/disable pairs Dec 7, 2019
tasks tweak build script for better local debugging Dec 4, 2019
.deployment Check in deployment script Nov 5, 2019
.gitignore Get better data on potential date parsing issue Dec 4, 2019
LICENSE Use js-codepage to augment 2047 parsing Oct 7, 2017
MHA.sln.DotSettings.user diagnostic map refactor lost api used - restore it Nov 10, 2019
Manifest.xml Fork manifest: One with mobile, one without. Mar 10, 2017
ManifestMobile.xml Update Jan 10, 2018
deploy.cmd Update deploy.cmd Nov 7, 2019
favicon.ico add favicon Dec 5, 2019
lgtm.yml Fix spacing in yml Apr 10, 2018
package-lock.json diagnostic map refactor lost api used - restore it Nov 10, 2019
package.json merge build scripts Dec 3, 2019


Message Header Analyzer mail app.

This is the source for the Message Header Analyzer. Install the app from the store here:

Installation Procedure

Because MHA requires the ReadWriteMailbox permission it can only be installed by the Administrator through the Exchange admin center. Here are some steps I put together:

  1. In Office365, go to the Exchange Admin Center.
  2. Click on the Organization tab
  3. From there, select the add-ins tab
  4. Click the Plus icon/Add from the Office Store
  5. A new page will load for the store
  6. Search for "Message Header Analyzer"
  7. Choose MHA in the results
  8. Click Add
  9. Confirm by clicking Yes
  10. Back in the Exchange Admin Center, refresh the list of add-ins
  11. You can now edit who the add-in is available for

A Note on Permissions

In order to get the transport message headers I have to use the EWS makeEwsRequestAsync method, which requires the ReadWriteMailbox permission level. See the article Understanding Outlook add-in permissions for more on this. If I could request fewer permissions I would, since I only ever read the one property, but I have no choice in the matter.

When REST is more widely available, and a few REST specific bugs are fixed, I'll be able to switch to REST and request a lower permission level.


Here is a standalone Message Header Analyzer running the same backend code as the MHA app:

Unit Tests

You can’t perform that action at this time.