2017-09-15 110 views
1

試圖附件從Outlook添加到電子郵件中附加還是返回了以下錯誤:Outlook插件無法將附件添加到消息

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

這發生在任何網絡上使用Outlook瀏覽器。在Outlook 2013/2016桌面客戶端上,附件已成功添加。

使用HTTPS和有效證書(非自簽名),該文件位於運行加載項的相同域中。使用HTTP代替HTTPS時不起作用。我可以通過在瀏覽器中輸入URL來下載文件。對服務器沒有「GET」請求來下載附件。

這個問題似乎是特定於我的網絡服務器。如果我嘗試從互聯網上附加一個隨機文件,它可以正常工作。

更新:該文件只能由經過身份驗證的加載項用戶訪問。它不是公衆可以訪問的。這可能是爲什麼它不起作用。有什麼辦法可以解決這個問題嗎?

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

回答

1

問題是您的文件需要驗證。

隨着桌面上的Outlook,attachmentUrl被髮送到Outlook客戶端下載並附加。由於這一切都發生在同一個環境中,所以身份驗證只是傳遞給您的文件服務器。

然而,使用OWA,attachmentUrl被髮送到服務器下載。由於服務器未通過身份驗證,因此文件無法訪問,無法下載並附加到消息。

一個潛在的解決方法是提供一個可公開訪問的臨時URI,但只能在短時間內存活。這是Microsoft Graph API處理從OneDrive下載文件的方式。它會生成一個只能使用一次並在幾分鐘後自毀的URI。

另一種選擇是使用中介(如Azure Blog Storage)託管文件並利用shared access signatures來保護對文件的訪問。根據你的文件的數量和大小,這可以是一個非常便宜的,以避免滾動你自己的解決方案(如在每GB便宜的便士)。

+0

謝謝,這就是我所懷疑的。我會研究你的建議來解決這個問題。 –