Search code examples
outlook-addinoffice-jsoutlook-web-addins

OfficeJS Body.setAsync will break inline image on the email


Client:
Microsoft Outlook for Mac
Build 16.26 / 16.27

Issue:
After calling Body.setAsync with html body that contains inline image. Outlook client will not send the underlying image with the email. As a result, recipient of the email won't be able to see the image.

Repro steps:
1. Install Salesforce Outlook Debug Tools https://sfdc-addin-tools.herokuapp.com/manifest
2. Go to New Email
3. In compose window, launch debug tools addin
4. At the top, click "Interactive tests" button
5. Insert a picture from your local directory
6. Click "Get body" on the addin
7. Click "Set body" on the addin
8. Send the email (preferably gmail, or email account outside your local Outlook account)
9. (Recipient mailbox) Inline image is not rendered

Notes:
1. Get body and Set (the same) body will append extra style attribute to the <img> tag

Original:
<img width=200 height=255
style='width:2.0833in;height:2.6562in' id="Picture 1"
src="local/image001.gif">

After set:
<img width=200 height=255
style='width:2.0833in;height:2.6562in' id="Picture 1"
src="local/image001.gif"
style='height:2.656in;width:2.083in'>
  1. Email that has an extra style attribute doesn't have the embedded image, and src attribute refers to original location src="/Users/bob/pictures/etc/" as oppose to src="cid:image001" in the encoded message.
  2. Seeing the same email on the sent folder will be just fine. My thought is its referencing the image from local directory.

Question for MSFT team:
1. Any workaround? Or timeline to have this fixed?


Solution

  • We are aware of this issue and are working on getting this fixed. We don't have a timeline yet, but we'll update this post as soon as we do.