Office js 我无法在Outlook中添加多个内联图像

Office js 我无法在Outlook中添加多个内联图像,office-js,outlook-web-addins,Office Js,Outlook Web Addins,我想用office.js将多个图像添加到我的邮件正文中 我正在使用以下代码: Office.context.mailbox.item.addFileAttachmentAsync(uri, 资产名称, {isInline:true}, 函数(asyncResult){//resolvepromise}); (在我多次调用后,我在邮件正文中插入正确的带有cids的html) 如果我不使用isInline,则所有图片都会添加到我的邮件正文中,但它们会显示在附件栏中 如果我确实使用了isInline

我想用office.js将多个图像添加到我的邮件正文中

我正在使用以下代码:

Office.context.mailbox.item.addFileAttachmentAsync(uri,
资产名称,
{isInline:true},
函数(asyncResult){//resolvepromise});
(在我多次调用后,我在邮件正文中插入正确的带有cids的html)

如果我不使用
isInline
,则所有图片都会添加到我的邮件正文中,但它们会显示在附件栏中

如果我确实使用了
isInline
中的所有图像中只有一个插入到我的邮件正文中(其他图像是白色正方形,在角落处有红色十字)

在添加每个附件后,我还尝试调用
Office.context.mailbox.item.saveAsync
,但也没有任何帮助

有人能帮我吗?

为什么不使用“setAsync”函数在正文中插入图像而不使用“addFileAttachmentAsync”?这样更简单

 var htmlContent='<img src=".."><img src="..">';
 Office.context.mailbox.item.body.setAsync(
                                     htmlContent,
                                    {coercionType: Office.CoercionType.Html },
                                    function (asyncResult) { });
var htmlContent='';
Office.context.mailbox.item.body.setAsync(
htmlContent,
{impressionType:Office.impressionType.Html},
函数(asyncResult){};
Office.context.mailbox.item.addFileAttachmentAsync(
"https://i.imgur.com/tH8sYNt.png",
“test3.png”,
{asyncContext:null,isInline:true},  
函数(异步结果)  {
Office.context.mailbox.item.body.setSelectedDataAsync(
                    "", 
                    {impressionType:Office.impressionType.Html,
asyncContext:null});
}

以上代码对我有效。在Outlook 2016 C2R上,如果代码不起作用,您能否向代码中提供一些示例输入?即您正在做什么来设置正文?还可以提供一些有关您的客户端的版本信息。(桌面Outlook 2016?2013?OWA?特定版本号)

那么我该如何插入图像呢?我使用的URL是临时的,只在几分钟内有效,所以我需要将图像文件作为attachments@Nick这正是我在上面用“setAsync”函数向您发布的内容。您可以使用此函数在正文中插入html,因此在html中创建img元素,然后使用功能很简单。我用于图像的URL仅在几分钟内有效,因此我不希望图像指向该URL,所以我想将其添加为attachments@Nick所以你想把这些iMeAg作为附件或者放在身体里?或者两者都放在身体里?我想把它们放在我的身体里,但我不想让它们依赖url。所以我想把它们放在身体里,就像如果从本地驱动器插入映像。(内联附件)能否提供回调中使用的代码(即,
//resolvepromise
)?是的,我也是这样做的,对于一张图片,多次失败都没有问题:Office.context.mailbox.item.addFileAttachmentAsync(“,”test3.png“,{isInline:true},函数(asyncResult){Office.context.mailbox.item.addFileAttachmentAsync(“,”test4.png“,{isInline:true},函数(asyncResult){Office.context.mailbox.item.body.setSelectedDataAsync(“,{ImpressionType:”html),asyncContext:null});}当我不添加扩展名时(如.png)图片确实会显示在我的邮件正文中,但接收者会看到附件。当我添加扩展名时,只有一张图片会显示在我的撰写邮件正文中(其他图片是白色的,在角落里有红十字)。但在这种情况下,接收器端不显示任何附件。这是在桌面Win32 Outlook 2016和MAC上。Outlook Online在这两种情况下都没有插入图像。这是Outlook桌面API中的一个错误,我们正在对此进行处理。现在,如果您更喜欢内联图像,请省略扩展名,或者如果att,请将isInline设置为false缓存的图像是可以接受的。对于outlook online,您能否提供更多详细信息,如浏览器、错误消息等,因为我们无法重新设置它。感谢您的报告。@Nick-like在上面指出,这是一个错误,我们正在积极处理它。同时,您可以执行以下操作来解除阻止自己:在设置第一个附件之后,c所有内容都将在回拨中放入setBody,然后在setBody的回拨调用addFileAttachmentAsync中为您的第二个附件和回拨调用setBody中再次插入。这将使您解除阻止,并且您应该能够按照此模式添加多个内联图像。问题解决后,我们将使用相同的内容更新帖子。
Office.context.mailbox.item.addFileAttachmentAsync(
"https://i.imgur.com/tH8sYNt.png",
"test3.png", 
{asyncContext: null, isInline: true},  
function (asyncResult)  {
        Office.context.mailbox.item.body.setSelectedDataAsync( 
                    "<img src='cid:test3.png'>", 
                    { coercionType: Office.CoercionType.Html,
                         asyncContext: null });
}