{"id":25421,"date":"2026-03-18T08:28:31","date_gmt":"2026-03-18T15:28:31","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=25421"},"modified":"2026-03-18T08:28:31","modified_gmt":"2026-03-18T15:28:31","slug":"changes-to-attachment-ids-for-inline-images-in-outlook-add-ins","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/changes-to-attachment-ids-for-inline-images-in-outlook-add-ins\/","title":{"rendered":"Changes to attachment IDs for inline images in Outlook add-ins"},"content":{"rendered":"<p><span class=\"NormalTextRun SCXW208088893 BCX8\">We\u2019d<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0like to inform you about an update to how\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">inline\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">image attachments are handled\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">when\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">they\u2019re<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">programmatically<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">added to a mail item&#8217;s<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0signature\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">or<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0body<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">in Outlook on the web and the new Outlook for Windows.<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">This\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">change\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">may\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">impact<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0your add<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">&#8211;<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">in if it\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">relies\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">on<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">the Exchange Web Services (<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">EWS<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">)\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">ID\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">that\u2019s\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">returned when adding\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">inline\u00a0<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">images<\/span><span class=\"NormalTextRun SCXW208088893 BCX8\">.<\/span><\/p>\n<h2><span class=\"NormalTextRun SCXW44149174 BCX8\" data-ccp-parastyle=\"heading 2\">What&#8217;s<\/span><span class=\"NormalTextRun SCXW44149174 BCX8\" data-ccp-parastyle=\"heading 2\">\u00a0changing?<\/span><\/h2>\n<p><span data-contrast=\"auto\">Previously, when\u00a0inline images\u00a0were added to\u00a0a\u00a0mail item\u2019s\u00a0signature or body\u00a0using\u00a0the\u00a0<\/span><code>addFileAttachmentFromBase64Async<\/code>\/<code>addFileAttachmentAsync<\/code> <span data-contrast=\"auto\">method (<\/span><a href=\"https:\/\/learn.microsoft.com\/javascript\/api\/outlook\/office.messagecompose#outlook-office-messagecompose-addfileattachmentfrombase64async-member(1)\"><span data-contrast=\"none\">Message Compose<\/span><\/a><span data-contrast=\"auto\">)\u00a0with\u00a0<\/span><code>isInline<\/code><span data-contrast=\"auto\">\u00a0set\u00a0to\u00a0<\/span><strong>true<\/strong><span data-contrast=\"auto\">,\u00a0the\u00a0images\u00a0were uploaded\u00a0to the server\u202fbefore\u202fthe\u00a0call\u00a0completed.\u00a0An EWS ID was then returned in the callback function for each image (for example,\u00a0<\/span><code>AAkALgAAAAAAHYQDEapmEc2byACqAC\/EWg0AW4xUByFbp0CroCNphMYEEAAGhqU3LwAAARIAEACS5VsVp3akQa7\/BahqVbve<\/code><span data-contrast=\"auto\">).<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Going forward,\u00a0inline images\u00a0will be\u00a0uploaded to the\u00a0server\u202fafter\u00a0the\u00a0<\/span><code>addFileAttachmentFromBase64Async<\/code><span data-contrast=\"auto\">\/<code>addFileAttachmentAsync<\/code> call completes and the images are added to a signature or body. Because the <\/span><code>addFileAttachmentFromBase64Async<\/code><span data-contrast=\"auto\">\/<code>addFileAttachmentAsync<\/code><\/span><span data-contrast=\"auto\"><strong>\u00a0<\/strong>call completes\u00a0immediately\u00a0without a network call, a temporary attachment ID is\u00a0generated locally instead of an EWS ID.\u00a0The attachment ID is\u00a0prefixed\u00a0with \u201caddinId\u201d (for example,\u00a0<\/span><code>addinId:31c91015-920a-6fed-f663-970a0f9bc5cd<\/code><span data-contrast=\"auto\">).\u00a0The\u00a0locally generated\u00a0attachment ID is only temporary\u00a0because\u00a0an EWS ID is eventually generated for the attachment once\u00a0it\u2019s\u00a0been uploaded to the server.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">The\u00a0temporary\u00a0attachment ID is fully supported\u00a0with other attachment APIs, such as\u00a0<\/span><code>getAttachmentsAsync<\/code><span data-contrast=\"auto\">\u00a0and\u00a0<\/span><code>getAttachmentContentAsync<\/code><span data-contrast=\"auto\">,\u00a0for the duration of the\u00a0current\u00a0compose session\u00a0(that is, while the mail item being composed is open).\u00a0This\u00a0behavior\u00a0applies even after the attachments have been uploaded and assigned an EWS ID.\u00a0Once the compose session ends, the\u00a0temporary ID can no longer be used.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Similar to the previous approach, users won&#8217;t be able to send the mail item until all inline attachments have been uploaded to the server. If a user attempts to send a message while attachments are still being uploaded, a dialog is shown informing them that the upload is still in progress.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2><span class=\"NormalTextRun SCXW3809170 BCX8\" data-ccp-parastyle=\"heading 2\">How does this change affect the\u00a0<\/span><span class=\"NormalTextRun SCXW3809170 BCX8\" data-ccp-parastyle=\"heading 2\">getAttachmentsAsync<\/span><span class=\"NormalTextRun SCXW3809170 BCX8\" data-ccp-parastyle=\"heading 2\">\u00a0call?<\/span><\/h2>\n<p><span class=\"TextRun SCXW241150553 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW241150553 BCX8\">When you<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">\u00a0call\u00a0<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">the\u00a0<\/span><\/span><code><span class=\"TextRun SCXW241150553 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW241150553 BCX8\">getAttachmentsAsync<\/span><\/span><\/code><span class=\"TextRun SCXW241150553 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW241150553 BCX8\">\u00a0method<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">in\u00a0<\/span><\/span><a class=\"Hyperlink SCXW241150553 BCX8\" href=\"https:\/\/learn.microsoft.com\/en-us\/javascript\/api\/outlook\/office.messagecompose#outlook-office-messagecompose-getattachmentsasync-member(1)\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW241150553 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW241150553 BCX8\" data-ccp-charstyle=\"Hyperlink\">message<\/span><\/span><\/a> <span class=\"TextRun SCXW241150553 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW241150553 BCX8\">compose mode<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">\u00a0after programmatically inserting inline attachments, the\u00a0<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">attachment ID\u00a0<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">returned in the callback function varies depending on whether the attachments have\u00a0<\/span><span class=\"NormalTextRun SCXW241150553 BCX8\">been uploaded to the server.<\/span><\/span><span class=\"EOP SCXW241150553 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ul>\n<li><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">If the attachments are still being uploaded to the ser<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">ver, the\u00a0<\/span><\/span><code><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">getAttachmentsAsync<\/span><\/span><\/code><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0method returns the temporary attachment ID<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0in the\u00a0<\/span><\/span><a class=\"Hyperlink SCXW258684234 BCX8\" href=\"https:\/\/learn.microsoft.com\/javascript\/api\/outlook\/office.attachmentdetailscompose#outlook-office-attachmentdetailscompose-id-member\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW258684234 BCX8\" data-ccp-charstyle=\"Hyperlink\">id<\/span><\/span><\/a><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0property<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">. Additionally, it\u00a0<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">also\u00a0<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">includes a<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0new property,\u00a0<\/span><\/span><a class=\"Hyperlink SCXW258684234 BCX8\" href=\"https:\/\/learn.microsoft.com\/javascript\/api\/outlook\/office.attachmentdetailscompose#outlook-office-attachmentdetailscompose-isserviceaccessible-member\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW258684234 BCX8\" data-ccp-charstyle=\"Hyperlink\">isServiceAccessible<\/span><\/span><\/a><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">,\u00a0<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">set to\u00a0<\/span><\/span><strong><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">false<\/span><\/span><\/strong><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">. The\u00a0<\/span><\/span><code><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentStart CommentHighlightRest SCXW258684234 BCX8\">isServiceAccessible<\/span><\/span><\/code><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun CommentHighlightRest SCXW258684234 BCX8\">\u00a0<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">property\u00a0<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">indicates<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0whether the attachment ID can be used in other ser<\/span><span class=\"NormalTextRun SCXW258684234 BCX8\">vices, such as Microsoft Graph. The following is an example of an\u00a0<\/span><\/span><a class=\"Hyperlink SCXW258684234 BCX8\" href=\"https:\/\/learn.microsoft.com\/javascript\/api\/outlook\/office.attachmentdetailscompose\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW258684234 BCX8\" data-ccp-charstyle=\"Hyperlink\">AttachmentDetailsCompose<\/span><\/span><\/a><span class=\"TextRun SCXW258684234 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW258684234 BCX8\">\u00a0object returned when attachments are still being uploaded.<\/span><\/span><span class=\"LineBreakBlob BlobObject DragDrop SCXW258684234 BCX8\"><span class=\"SCXW258684234 BCX8\">\u00a0<\/span><br class=\"SCXW258684234 BCX8\" \/><\/span>\n<code><span class=\"TextRun SCXW212345310 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW212345310 BCX8\">{\"id\":\"addinId:31c91015-920a-6fed-f663-970a0f9bc5cd\u201d,\"name\":\"taskpane.jpg\",\"contentType\":\"image\/png\",\"size\":1318,\"attachmentType\":\"file\",\"isInline<\/span><span class=\"NormalTextRun SCXW212345310 BCX8\">\":true<\/span><span class=\"NormalTextRun SCXW212345310 BCX8\">,\"isServiceAccessible<\/span><span class=\"NormalTextRun SCXW212345310 BCX8\">\":false<\/span><\/span><span class=\"TextRun SCXW212345310 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW212345310 BCX8\">}<\/span><\/span><span class=\"EOP SCXW212345310 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/code><\/li>\n<li><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">If the attachments have been uploaded to the server, the\u00a0<\/span><\/span><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">getAttachmentsAsync<\/span><\/span><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">\u00a0method<\/span><span class=\"NormalTextRun CommentStart SCXW5670618 BCX8\">\u00a0returns the EWS ID in the\u00a0<\/span><\/span><code><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">id<\/span><\/span><\/code><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">\u00a0property<\/span><span class=\"NormalTextRun SCXW5670618 BCX8\">\u00a0and\u00a0<\/span><\/span><code><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">isServiceAccessible<\/span><\/span><\/code><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\"><code>\u00a0<\/code>is set to\u00a0<\/span><\/span><strong><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">true<\/span><\/span><\/strong><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">. The following is an example of an\u00a0<\/span><\/span><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><code><span class=\"NormalTextRun SCXW5670618 BCX8\">AttachmentDetailsCompose<\/span><\/code><span class=\"NormalTextRun SCXW5670618 BCX8\">\u00a0<\/span><\/span><span class=\"TextRun SCXW5670618 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5670618 BCX8\">object returned when att<\/span><span class=\"NormalTextRun SCXW5670618 BCX8\">achments have been uploaded.<\/span><\/span><span class=\"EOP Selected SCXW5670618 BCX8\" data-ccp-props=\"{}\">\n<code><span class=\"TextRun SCXW264582528 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW264582528 BCX8\">{\"id\":\"<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">AAkALgAAAAAAHYQDEapmEc2byACqAC\/EWg0AW4xUByFbp0CroCNphMYEEAAGhqU3LwAAARIAEACS5VsVp3akQa7\/<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">BahqVbve<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">\",\"name\":\"taskpane.jpg\",\"<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">contentType<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">\":\"image\/png\",\"size\":1318,\"attachmentType\":\"file\",\"isInline<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">\":true<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">,\"isServiceAccessible<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">\":<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">true<\/span><span class=\"NormalTextRun SCXW264582528 BCX8\">}<\/span><\/span><span class=\"EOP SCXW264582528 BCX8\" data-ccp-props=\"{&quot;335559685&quot;:720,&quot;335559991&quot;:360}\">\u00a0<\/span><\/code><\/span><\/li>\n<\/ul>\n<h2><span class=\"TextRun SCXW130371302 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW130371302 BCX8\" data-ccp-parastyle=\"heading 2\">Where is it changing?<\/span><\/span><span class=\"EOP Selected SCXW130371302 BCX8\" data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span class=\"NormalTextRun SCXW43852924 BCX8\">The updated approach improves\u00a0<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">signature scenarios<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">\u00a0by making\u00a0<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">the addition of inline attachments<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">\u00a0fast and resilient. It avoids waiting on network uploads before the signature can be applied and it ensures that a transient upload issue\u00a0<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">doesn\u2019t<\/span><span class=\"NormalTextRun SCXW43852924 BCX8\">\u00a0prevent the signature from appearing.<\/span><\/p>\n<ul>\n<li><strong><span class=\"TextRun SCXW223639731 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW223639731 BCX8\">Faster signature stamping (lower perceived latency)<\/span><\/span><\/strong><span class=\"TextRun SCXW223639731 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW223639731 BCX8\">. The signature can be set\u00a0<\/span><span class=\"NormalTextRun SCXW223639731 BCX8\">immediately<\/span><span class=\"NormalTextRun SCXW223639731 BCX8\">, without waiting for each inline image to upload sequentially, so users see their signature sooner.<\/span><\/span><span class=\"EOP Selected SCXW223639731 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li><strong><span class=\"TextRun SCXW214030057 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW214030057 BCX8\">More reliable outcomes<\/span><\/span><\/strong><span class=\"TextRun SCXW214030057 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW214030057 BCX8\">. A failure to upload any one inline image no longer causes the entire signature stamping operation to fail, so users still get a signature and can continue composing and sending.<\/span><\/span><span class=\"EOP Selected SCXW214030057 BCX8\" data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2><span class=\"TextRun SCXW46726944 BCX8\" lang=\"EN-IN\" xml:lang=\"EN-IN\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW46726944 BCX8\" data-ccp-parastyle=\"heading 2\">Action\u00a0<\/span><span class=\"NormalTextRun SCXW46726944 BCX8\" data-ccp-parastyle=\"heading 2\">required<\/span><\/span><span class=\"EOP Selected SCXW46726944 BCX8\" data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">If your Outlook add-in relies on the EWS ID of an attachment to make Microsoft Graph calls, you must\u00a0adjust your code to\u00a0ensure that the\u00a0<\/span><code>isServiceAccessible<\/code><span data-contrast=\"auto\">\u00a0property\u00a0returns\u00a0<\/span><span data-contrast=\"auto\">true\u00a0<\/span><span data-contrast=\"auto\">before making the Graph calls.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">If your Outlook\u00a0signature\u00a0add-in calls\u00a0<\/span><code>addFileAttachmentFromBase64Async<\/code>\/<code><span data-contrast=\"auto\">addFileAttachmentAsync<\/span><\/code><span data-contrast=\"auto\">together\u00a0with\u00a0<\/span><a href=\"https:\/\/learn.microsoft.com\/javascript\/api\/outlook\/office.body#outlook-office-body-setsignatureasync-member(1)\"><span data-contrast=\"none\">setSignatureAsync<\/span><\/a><span data-contrast=\"auto\">, no\u00a0changes are needed.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<h2 aria-level=\"2\"><span data-contrast=\"none\">Timeline<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:160,&quot;335559739&quot;:80}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Starting March 30, 2026, the changes to how inline attachments are handled will begin rolling out to production users. If needed, please make the necessary changes to your add-in before then.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read how\u00a0inline\u00a0image attachments are handled\u00a0when\u00a0they\u2019re\u00a0programmatically\u00a0added to a mail item&#8217;s\u00a0signature\u00a0or\u00a0body\u00a0in Outlook on the web and the new Outlook for Windows<\/p>\n","protected":false},"author":69076,"featured_media":25159,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,11],"tags":[],"class_list":["post-25421","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","category-office-add-ins"],"acf":[],"blog_post_summary":"<p>Read how\u00a0inline\u00a0image attachments are handled\u00a0when\u00a0they\u2019re\u00a0programmatically\u00a0added to a mail item&#8217;s\u00a0signature\u00a0or\u00a0body\u00a0in Outlook on the web and the new Outlook for Windows<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69076"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=25421"}],"version-history":[{"count":2,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25421\/revisions"}],"predecessor-version":[{"id":25455,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/25421\/revisions\/25455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=25421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=25421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=25421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}