2017-09-15 14 views
1

に添付ファイルを追加することができない、次のエラーを返して:OutlookがアドインアドインをOutlookから電子メールメッセージに添付ファイルを追加しようとしたメッセージ

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

これは、いずれかのウェブ上でOutlookを使用して起こりますブラウザ。 Outlook 2013/2016デスクトップクライアントでは、添付ファイルが正常に追加されます。

ファイルは、HTTPSと有効な証明書(自己署名されていない)を使用して、アドインが実行されているのと同じドメインでホストされます。 HTTPSの代わりにHTTPを使用する場合は機能しません。ブラウザにURLを入力してファイルをダウンロードできます。添付ファイルをダウンロードするためにサーバーに「GET」要求は行われません。

問題は私のWebサーバーに固有のようです。インターネットからランダムなファイルを添付しようとすると、正常に動作します。

更新:ファイルは、認証されたアドインユーザーのみがアクセスできます。それは一般にアクセスできない。それはおそらくそれが動作しない理由です。これを回避する方法はありますか?

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

答えて

1

問題は、ファイルに認証が必要なことです。

デスクトップのOutlookでは、attachmentUrlがOutlookクライアントに送信され、ダウンロードして添付します。これはすべて同じコンテキスト内で起きているので、認証はファイルサーバーに渡されているだけです。

ただし、attachmentUrlサーバーに送信されます。サーバーは認証されていないため、ファイルにアクセスできず、メッセージをダウンロードしてメッセージに添付することはできません。

潜在的な回避策は、一時的に公開されていても一時的にしかアクセスできないURIを提供することです。これは、Microsoft Graph APIがOneDriveからファイルをダウンロードする方法です。これは、一度しか使用できないURIを生成し、数分後に自己破棄します。

もう1つの方法は、Azure Blog Storageなどの仲介者を使用してファイルをホストし、shared access signaturesを利用してファイルへのアクセスを保護することです。あなたのファイルの数とサイズに応じて、これはあなた自身の解決策を避けるために非常に安価です(GBの種類の安価なペニーのように)。

+0

ありがとう、それは私が疑ったものです。私はこの問題を回避するためにあなたの提案を調べます。 –

関連する問題