2016-05-25 25 views
0

次の行は、Macクライアントでアドインを応答しないようにしていました。アドインは、この行を削除して関数someFunctionを直接実行すると、Macクライアント上で完全に正常に動作します。メール本体からURLを取り出す最良の方法

Office.context.mailbox.item.body.getAsync( "html"、someFunction);

私たちは、特定のIDを含むhtmlとそれらのURLを処理することによって、メール本文のすべてのURLを抽出する必要があるため、body.getAsync()を使用しました。

下記を使用してみましたが、予想されたURLが表示されませんでした。

var links = Office.context.mailbox.item.getEntities()。urls;

私はまた、次の

Office.initialize = function (reason) { 
    $(document).ready(function() { 
     app.initialize(); 
     Office.context.mailbox.item.body.getAsync("html", processHtmlBody); 
    }); 
}; 

function processHtmlBody(asyncResult) { 
    var htmlParser = new DOMParser().parseFromString(asyncResult.value, "text/html"); 
    var links = htmlParser.getElementsByTagName("a");  
} 

をしようとしているメール本文からURLを取得するより良い代替はあります。

https://dev.outlook.com/reference/add-ins/tutorial-api-requirement-sets.html

をそれ以外のエンティティを使用して、あなたの唯一のオプションですが、getElementsByTagNameのはおそらく(最適に動作します:getAsyncは、Mac用のOutlookは、現在サポートされていない1.3メールボックスの要件のセットは、の一部であること

答えて

0

makeEwsRequestAsync()getEntities().urlsの両方の代替策と回避策を試して、MacクライアントのmailbodyからURLを取得しました。しかし、どちらも成功しませんでした。

  • makeEwsRequestAsync():「データエラーなし」。
  • getEntities().urlsは:Macクライアントのためにそう意図した結果/ URLを

を与えていない、我々はロジックを変更終わったとURLを取得するための任意のコードが含まれていませんでした条件ロジックを追加しました。

Iは同じ問題とIを有していた(Office.context.requirements.isSetSupported( "メールボックス"、1.3))
{
//条件コード

}

1

注意メール本文にアクセスできた場合)。

+0

makeEwsRequestAsync()は、iアイテムがないOffice.context.mailbox上で動作しています。 getAsync()のように同じものを取得していません。何か不足していますか? –

+0

これは、makeEwsRequestAsync()で呼び出すEWS操作に依存します。たとえば、GetItemを呼び出して、現在の電子メールの本文またはその他のもの(IDを持っている場合)を取得できます。 –

+0

電子メールのIDですか? –

0

場合同様の方法で解決しました。

return new Promise((resolve, reject) => { 
    mailbox.item.body.getAsync(window.Office.CoercionType.Html, asyncResult => { 
     if (asyncResult.status == window.Office.AsyncResultStatus.Succeeded) { 
      var $dom = $(asyncResult.value); 
      var url = $dom.find('#x_hiddenURL').text(); 

      resolve(url); 
     } else { 
      reject(new Error('Failed to load email body')); 
     } 
    }); 
}); 
関連する問題