Exchange Web サービス マネージ API 2.2 を使用してユーザーの受信トレイを監視しており、電子メールが新しいアイテムか、返信か、転送されたメッセージかを判断する必要があります。
メールが転送メールかどうかを確認する方法など、SO に関するさまざまな記事を見てきました。およびews c# を使用して電子メールが返信/応答であるかどうかを判断する方法はありますか? どちらも特定のケースで役立ちますが、返信と転送されたアイテムを区別する方法はまだわかりません。
最初の記事では、毎回 (転送または返信) 5 バイトが追加されるため、最後のアクションが何であったかはわかりません。
2 番目の記事ではInReplyTo
、転送された電子メールのプロパティを調べると、元の送信者の電子メール アドレス (null ではない) が含まれています。
PR_ICON_INDEX、PR_LAST_VERB_EXECUTED、および PR_LAST_VERB_EXECUTION_TIME の値を調べるために拡張プロパティを使用することを提案するthisまたはthisなどの他の記事を見たことがあります。
私のコードは次のようになりますが、値を返すことはありませんlastVerbExecuted
var lastVerbExecutedProperty = new ExtendedPropertyDefinition(4225, MapiPropertyType.Integer);
var response = service.BindToItems(newMails, new PropertySet(BasePropertySet.IdOnly, lastVerbExecutedProperty));
var items = response.Select(itemResponse => itemResponse.Item);
foreach (var item in items)
{
object lastVerb;
if (item.TryGetProperty(lastVerbExecutedProperty, out lastVerb))
{
// do something
}
}