En cours de développement d'un complément Office en JavaScript, je remarque certaines différences dans la convivialité de l'API entre le client enrichi Outlook Windows et le portail Web Office365. Mon complément fonctionne actuellement comme un charme dans le mode "Web" mais pas comme prévu dans le client enrichi.Outlook Pièces jointes d'API JavaScript
Le complément extrait le corps du message électronique + les pièces jointes et l'envoie à un serveur d'applications distant.
Office.context.mailbox.item.body.getAsync(Office.CoercionType.Html, { asyncContext: "html" }, function callback(resHtml) {
// dealing with email in HTML format
});
Pour les pièces jointes, je fais comme ceci:
for (var i = 0; i < Office.context.mailbox.item.attachments.length; i++) {
var _att = Office.context.mailbox.item.attachments[i];
attachments.assets.push({
name: _att.name,
id: _att.id,
contentType: _att.contentType,
size: _att.size,
attachmentType: _att.attachmentType,
isInline: _att.isInline
});
}
(La JS n'add-in envoie des données méta-attachement à l'application à distance L'application à distance doit se connecter à Exchange. EWS pour aller chercher réellement les pièces jointes avec la condition méta-données)
la question
Quand il y a des images inlined attach ed dans le courrier électronique, le portail Web et le client Rich montre complètement différemment dans le code HTML de sortie:
portail Web
<img originalSrc="cid:[email protected]" src="data:image/gif;base64,..." width="310" height="15" id="x__x0000_i1030" alt="...">
Rich Client
<img src="~WRS%7b0E0FFAA4-6FC0-49C1-9BB6-3D1A2F5211F1%7d_fichiers/image001.jpg" width=906 height=245 id="Picture 6">
autre la main, la méthode Office.context.mailbox.item.attachments
renvoie ce genre d'objets:
{
"_data$p$0": {
"id": "AAMkAGI2MjY4MGQ....",
"name": "image004.png",
"contentType": "image/png",
"size": 427,
"attachmentType": 0,
"isInline": true
}
}
Comme il est assez clair de mapper les images en ligne par leur nom à leur "cid: XYZ" dans le code HTML du portail Web, comment dois-je les mapper dans le client enrichi?
Petite observation: même l'objet attachment
JS dit l'image est quelque chose comme image003.png
, la balise <img>
pour l'image ne REFLET pas du tout et montre quelque chose comme ~WRS...../image001.gif
. (Nom de fichier ne identicals, extensions non-concordance)
Merci :)