Optimizing Email Branding with BIMI

Have you ever noticed that some of the people and companies that email you have different icons? Somehow rather than initials, they are represented by a custom avatar in your message list. Usually, it is their corporate logo.

BIMI which is an acronym for Brand Indicators for Message Identification is the protocol being used to achieve the effect. In a nutshell, the protocol requires that you make your email environment fully DMARC compliant. Once you’ve implemented SPF, DKIM, and DMARC you can setup BIMI by following the instructions on the group’s website https://bimigroup.org.

The BIMI group’s implementation guide will walk you through creating the appropriately sized logo image. That image has to be hosted on a publicly available website accessible via an HTTPS URL. You will eventually create a special DNS record that points to the image’s URL. It is this record that the email client applications use to download and display the custom sender icon.

Indeed, is using BIMI and their logo appears in my message list as a result.

Chances are that you have researched the topic and are already aware of this basic information. You’ve also probably discovered that Microsoft does not support BIMI at this time. It turns out there are a couple of workarounds Microsoft customers can use to send BIMI messages. They’re not free, or easy. However, if you really need the branding before MS fully supports BIMI there aren’t any other options.

Microsoft’s Dynamics 365 does support BIMI messages in certain situations. Dynamics 365 is the only way to send BIMI enabled email messages from a Microsoft environment right now. More information about the process is available @ https://learn.microsoft.com/en-us/dynamics365/customer-insights/journeys/bimi-support. Dynamics 365 is a subscription-based solution. There are demo licenses available, work with your CSP or VAR to obtain one.

Here’s the rub. Even if you send Dynamics 365 journey messages with a BIMI logo to Outlook users, the icons won’t be displayed. Outlook itself only supports sender images from Exchange/Outlook contacts at the moment. That leaves us with creating contacts that include the images we want to display for our Outlook users.

It is possible to use a combination of MS Graph and PowerShell to create 365 contacts. There are several scripts already out there that would serve as baseline code. Unfortunately, none of the ones I’ve examined include a procedure to manipulate the contact photos. Displaying branded logos in Outlook is a big undertaking. The effect would only work on Outlook accounts in your organization. So, consider the outcome beforehand.

According to Microsoft Learn, contact’s photos are a code accessible attribute. See this link for more information: https://learn.microsoft.com/en-us/graph/api/resources/profilephoto?view=graph-rest-1.0. We would need to bulk import or create Exchange Online contacts. The method is described (with examples) on Microsoft’s site see: https://learn.microsoft.com/en-us/purview/bulk-import-external-contacts. An import script would need to include a line to download and apply the photo using the “Update profilePhoto” method. I haven’t personally undertaken this task, but I’m confident that it should work. If you’ve already banged out a working solution, feel free to post a link in the comments. If I create a working script in the future, I’ll update this post.