2017-09-15 3 views
1

Essayer d'ajouter une pièce jointe à un message électronique à partir d'un complément Outlook retourne l'erreur suivante:Outlook Add dans l'impossibilité d'ajouter des pièces jointes à un message

status: failed 
code:9007  
message:"The attachment cannot be added to the item."  
name:"AttachmentUploadGeneralFailure" 

Cela se produit à l'aide d'Outlook sur le Web en tout navigateur. Sur les clients de bureau Outlook 2013/2016, la pièce jointe est ajoutée avec succès.

Le fichier est hébergé sur le même domaine où le complément est en cours d'exécution, en utilisant HTTPS et un certificat valide (non auto-signé). Ne fonctionne pas lorsque vous utilisez HTTP au lieu de HTTPS non plus. Je suis capable de télécharger le fichier en entrant l'URL dans le navigateur. Aucune demande "GET" n'est faite au serveur pour télécharger la pièce jointe.

Le problème semble être spécifique à mon serveur Web. Si j'essaie de joindre un fichier aléatoire à partir d'Internet, cela fonctionne très bien.

Mise à jour: le fichier est accessible uniquement à l'utilisateur authentifié. Ce n'est pas accessible au public. C'est probablement pourquoi ça ne marche pas. Y a-t-il un moyen de contourner cela?

mailbox.item.addFileAttachmentAsync(
    attachmentUrl, 
    fileName, 
    function (result) { 
     if (result.status === Office.AsyncResultStatus.Failed) { 
      console.log(result.error.message); 
     } 
    }); 

Répondre

1

Le problème est que votre fichier nécessite une authentification.

Avec Outlook sur le bureau, le attachmentUrl est envoyé au client Outlook pour télécharger et joindre. Comme tout cela se passe dans le même contexte, l'authentification est simplement transmise à votre serveur de fichiers. Cependant, avec OWA, le attachmentUrl est envoyé au serveur pour le téléchargement. Comme le serveur n'est pas authentifié, le fichier n'est pas accessible et ne peut pas être téléchargé et joint au message.

Une solution de contournement potentielle consiste à fournir un URI temporaire accessible au public, mais qui ne dure que peu de temps. C'est ainsi que l'API Microsoft Graph gère le téléchargement de fichiers à partir de OneDrive. Il génère un URI qui ne peut être utilisé qu'une fois et s'auto-détruit après quelques minutes.

Une autre option consiste à utiliser un intermédiaire tel que Azure Blog Storage pour héberger les fichiers et tirer parti de shared access signatures pour sécuriser l'accès au fichier. En fonction du nombre et de la taille de vos fichiers, cela peut être extrêmement peu coûteux d'éviter de rouler votre propre solution (comme dans le cas du centime par Go de type peu coûteux).

+0

Merci, c'est ce que je soupçonnais. Je vais examiner vos suggestions pour contourner ce problème. –