I promised in my last post that EAS MD would be open sourced, and available for those who want to tinker with it or build their own utilities based on what I have done.
I’ve managed to sort this out now, and if you head on over to GitHub it should be available for your viewing pleasure:
I’ve upgraded the solution to .Net framework 4.5.1 in the process. Not a big change in itself, but at least it saves you from installing an older version of .Net if you´re running a new Windows version. I have not upgraded it in the sense of rewriting code to use HttpClient instead of HttpWebRequest, and other new "stuff". (It would for instance make sense to go async/await to unblock the UI as well.)
While it´s not something you´re likely to notice I also replaced the WBXML bits with the one I´m using for the EAS Web project (https://easweb.codeplex.com)
Since I considered this to be a shift from the regular updates, (actually irregular is probably a better word since I haven´t updated it for a long time), I bumped the version number all the way to 2.0.
I have a web version of EAS MD as well currently burning cpu cycles over at https://easmd.labs.mobilitydojo.net, and this obviously shares some code with the desktop version. I have however not included this in the repo. It´s not that a web implementation wouldn’t add value, but the current version is hopelessly outdated so I think that it would be cleaner to just rewrite the whole web thing if a non-desktop version is needed.
There are certainly things that can be improved upon from the current version:
- The autodiscover feature doesn’t follow redirects, so for instance testing a mailbox located in Office 365 might give you a PASS, but not inform you of the "final" address since Office 365 relies on multiple queries for this.
- The WBXML utility isn’t exactly easy to work with, nor is it fully featured. I´m not sure whether this should be pursued further, or abandoned as a feature.
- Making the output from the test more readable. I can´t even remember exactly why Base64 and Hex are options as they don´t really make much sense. (Hex has been hidden for a long time, and not present during runtime. The Base64 option is flipped off now too, but the code is still there.) The binary output can be used for some obscure scenarios, but decoded WBXML probably is the best.
Anyways, it’s all available now so if anyone feels inspired they´re free to do as they like. The code is licensed under GPLv2, and you are welcome to contribute if you come up with a killer feature.