outlook加载项图像&;文件夹
我试图找到解决问题的办法,但没有找到任何地方,希望这里有人能救我 我在VS2015上用JavaScript编写插件,对正文消息进行加密和解密 1。第一个问题是接收器看不到的图像。 (谈论通过“插入图片内联”按钮复制到正文中的图像) 在撰写模式下我们对消息进行加密,然后在解密时它工作正常,因为撰写模式是客户端,他可以识别本地图像。 在读取模式下当用户想要解密邮件并查看他看不到的图像时,因为加密阻止outlook将本地图像转换为服务器上的数据 在我的代码中,我像这样接受正文消息(撰写模式) 然后,用户通过单击“发送”发送加密消息 在读取模式下,我只需将其打印到我的html中,以检查解密是否正确:outlook加载项图像&;文件夹,outlook,outlook-addin,outlook-web-app,outlook-web-addins,Outlook,Outlook Addin,Outlook Web App,Outlook Web Addins,我试图找到解决问题的办法,但没有找到任何地方,希望这里有人能救我 我在VS2015上用JavaScript编写插件,对正文消息进行加密和解密 1。第一个问题是接收器看不到的图像。 (谈论通过“插入图片内联”按钮复制到正文中的图像) 在撰写模式下我们对消息进行加密,然后在解密时它工作正常,因为撰写模式是客户端,他可以识别本地图像。 在读取模式下当用户想要解密邮件并查看他看不到的图像时,因为加密阻止outlook将本地图像转换为服务器上的数据 在我的代码中,我像这样接受正文消息(撰写模式) 然后,用
(JSON.parse(xhr.responseText).Data.Content));
然后我得到了图片的图标,但没有成功地显示出真正的图片。
图标的src指向他无法访问的地方
<img src="https://attachment.outlook.office.net/owa/*****/service.svc/s/GetFileAttachment?id=AAMkADUwMDE0YWM1LTYwODctNG ......
然后,我想将文件附加到邮件,因此,执行此操作的唯一方法是:
addFileAttachmentAsync(uri, attachmentName, optionsopt, callback opt)
然后,我需要为此方法创建文件的url,因此我使用此方法:
var objectURL = URL.createObjectURL(f);
但是现在,当我使用addFileAttachmentAsync方法与objectURL进行同步时,我发现有一个问题,它无法附加它,我认为URL是不正确的
谢谢大家适用于所有希望解决此问题的人 **在outlook web中,此解决方案运行良好,但在outlook Desktop中,存在与服务器同步的问题,因此saveAsync函数存在延迟,目前没有任何解决方案,因此它可以工作,但需要稍等。您可以阅读更多有关此问题的信息 第一个问题: outlook加载项在使用getAsync和setAsync函数时出现问题。当体内有一些图像时,就会出现问题。这是因为当你以Html格式获取主体,然后返回具有不同格式的主体时,图像仍然没有“上传”,src是错误的。 我使用Outlook rest API成功地解决了此问题。 所以解决方法是这样的:
希望它能帮助别人,祝你好运 对于所有希望找到解决此问题的方法的人 **在outlook web中,此解决方案运行良好,但在outlook Desktop中,存在与服务器同步的问题,因此saveAsync函数存在延迟,目前没有任何解决方案,因此它可以工作,但需要稍等。您可以阅读更多有关此问题的信息 第一个问题: outlook加载项在使用getAsync和setAsync函数时出现问题。当体内有一些图像时,就会出现问题。这是因为当你以Html格式获取主体,然后返回具有不同格式的主体时,图像仍然没有“上传”,src是错误的。 我使用Outlook rest API成功地解决了此问题。 所以解决方法是这样的:
addFileAttachmentAsync(uri, attachmentName, optionsopt, callback opt)
var objectURL = URL.createObjectURL(f);
item.body.getAsync(
Office.CoercionType.Html,
{ asyncContext: "This is passed to the callback" },
function callback(resultbody) {
var bodyDiv = document.createElement('div');
bodyDiv.innerHTML = content;
Office.context.mailbox.item.saveAsync(
function callback(result) {
var myNewItemSaved = result.value;
Office.context.mailbox.getCallbackTokenAsync({ isRest: true },
function (result) {
if (result.status === "succeeded") {
var accessToken = result.value;
var itemId = "";
if (Office.context.mailbox.diagnostics.hostName === 'OutlookIOS')
itemId = Office.context.mailbox.item.itemId;
else
itemId = Office.context.mailbox.convertToRestId(myNewItemSaved,
Office.MailboxEnums.RestVersion.v2_0);
var xhr3 = new XMLHttpRequest();
xhr3.open("GET", "https://outlook.office.com/api/v2.0/me/messages/" + itemId + "/attachments", true);
xhr3.setRequestHeader("Content-type", "application/json");
xhr3.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr3.setRequestHeader("Authorization", "Bearer " + accessToken);
xhr3.send();
xhr3.onreadystatechange = function () {
if (xhr3.readyState == 4) {
if (xhr3.status == 200) {
var allImages = JSON.parse(xhr3.response).value;
var isDesktop = false;
var imgSrcId = bodyDiv.getElementsByTagName('img')[0].getAttribute("src");
if (imgSrcId.indexOf("cid") != -1) //Outlook Desktop
isDesktop = true;
for (var i = 0; i < allImages.length; i++) {
if (bodyDiv.getElementsByTagName('img')[i].getAttribute("src").indexOf("base64")!=-1)
continue;
if (isDesktop)
imgSrcId = bodyDiv.getElementsByTagName('img')[i].getAttribute("src");
else
imgSrcId = bodyDiv.getElementsByTagName('img'[i].getAttribute("originalsrc");
imgSrcId = imgSrcId.substr(4, imgSrcId.length);
var wantedImg;
for (var j = 0; j < allImages.length; j++) {
if ((allImages[j].ContentId).localeCompare(imgSrcId) != -1) {
wantedImg = allImages[j]; break;}
}
bodyDiv.getElementsByTagName('img')[i].src = 'data:' + wantedImg.ContentType + ';base64,' + wantedImg.ContentBytes;
}
}
setAsync......
}
}}}})})};
var attachment ={
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "smile.png",
"ContentBytes": "AAACFAMxLjAeKUDndY7EKF4P7QiWE7HgHLa7UiropGUTiDp5V07M0c5jaaTteauhzs0hOU+EOmVT0Lb6eSQ2MzgkCre/zCV9+kIB9PjWnOzoufau67J9PQdXapsOQSMcpt9X2QpcIjnl7H3sLu9iu2rqcvSjwhDnK6JygtghUB405EZHZ9LQcfJ1ZTYHylke2T9zbViq2BPqU/8IHZWsb/KQ/qzV4Jwv3NHnI583JvOuAtETJngh964edC4cU2IY6FkIWprksRw7d4fEQ/+3KbEyW0trIZm59jpTSV01/PhOI0RDKj1xI1Vr+lgMRZpOrYDfChWWWbByNzSXbIsTjHMU6GmQ5Cb09H3kv/2koFa5Pj2z8i+NGywYKw8ZSu3NVblM9I0EkQVLrxkM8gqyrDEtAobxPRxEzGTEXdnjws5UIiiGFBq3khuxejFGCNvUbmPM9guVZO0ccDe1FICTFHkrPlLZW/TvJYMou0HBrvH7s4taBHyZw5x03dhps+WG19D5na44vaVX2Vni6ZrrxfqFo7JTUpCJxCcPyoG7/nEWtJ/V/J+oXdypeapN9Agl6Q81WvCbzuyZgbLTfj6NXWDoliie069Hvk/k2lP+HyO7Iu5ffeRX2WWguwdfGXiNbqInrxn18tX+N7/KqWbRJv96tmijdCmCvsF9Lpr9k7QFKB93wuHfTuE6Qi2IVNBfzNBaz1iJYjY="
}
var xhr4 = new XMLHttpRequest();
xhr4.open("POST", "https://outlook.office.com/api/v2.0/me/messages/" + itemId + "/attachments", true);
xhr4.setRequestHeader("Content-type", "application/json");
xhr4.setRequestHeader("Access-Control-Allow-Origin", "*");
xhr4.setRequestHeader("Authorization", "Bearer " + accessToken);
xhr4.send(JSON.stringify(attachment));
xhr4.onreadystatechange = function () {
if (xhr4.readyState == 4) {
if (xhr4.status == 200)
console.log("ok");
else
console.log(xhr4.response);
}};