背景と概要
Microsoft Exchangeというメールサーバーには、EWS(Exchange Web Services)というメール情報に関するインターフェイスを提供するウェブサービスが用意されています。このウェブサービスを介してメール情報を取得するという処理を作る必要があったのですが、いくつかの場合について添付画像などが取れないケースがありました。
既存の処理を別言語に移植するという作業だったこともあり、あまり詳しい仕様を知らないまま実装したのが悪いのですが、今になってある程度状況が見えてきたので自分用に整理しておきます。
なお、ざっくりした添付データの仕様は下記のURLにありますので、こちらを見れば一通りはわかるはずです(ま、実際にロジックやデータ構造を見ないとピンとこないと思いますが)。
- Attachments and EWS in Exchange/Office Dev Center
- https://msdn.microsoft.com/ja-jp/library/office/dn726693(v=exchg.150).aspx

- 作者: Jonas Andersson,Mike Pfeiffer
- 出版社/メーカー: Packt Publishing
- 発売日: 2013/05/22
- メディア: ペーパーバック
- この商品を含むブログを見る
添付データの種類
添付データには大きく2種類あるようです。それぞれ、メール1件のデータ構造上別のプロパティに格納されることから、取得処理はデータの種類を意識して組む必要があるようです。
添付データの添付方式
添付データの付き方にも2種あるようです。
非インライン添付
後述の「インライン(Inline)」ではないもの。いわゆる普通の添付データです。これがついたメールデータは、HasAttachmentsプロパティがTrueになります。
インライン添付
HTMLメールの本文に貼付された画像のようなデータです。具体的にはほかにもこの分類になるものはあるのかもしれませんが、現時点で私が確認できたのはHTMLに貼付された画像だけでした。このデータがついている場合、HasAttachmentsプロパティはFalse、IsInlineプロパティがTrueになるようです。
ただし、添付された画像データは前述のFileAttachemntsデータの中に含まれることから、HasAttachmentsプロパティだけで添付データの有無を判断していると、インライン添付データだけがついたメールの添付画像を取り損ねます。
とりあえずこんな感じ。

- 作者: デイビッドウッド,David Wood,佐々木雅之,千葉猛,日比野洋克,渡部直明,沢野弘幸,鄭隆幸,平塚伸世,大川佳織
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2000/11
- メディア: 単行本
- 購入: 2人 クリック: 24回
- この商品を含むブログ (8件) を見る