Outlook メール REST API を使用する
Microsoft Graph を使用すると、アプリは個人または組織のアカウントでユーザーの Outlook メール データに正当にアクセスできます。 適切な委任されたメールまたはアプリケーション のメールアクセス許可を使用すると、アプリはサインインしているユーザーまたはテナント内の任意のユーザーのメール データにアクセスできます。 アクセス トークン、アプリの登録、委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「 認証と承認の基本」を参照してください。
Microsoft Graph API は、ユーザーの プライマリ メールボックスおよび 共有メールボックス のデータへのアクセスをサポートしています。 データは、Microsoft 365 の一部として Exchange Online のクラウド内のメールボックスに保存されるか、ハイブリッド展開のオンプレミスの Exchange に保存されるカレンダー、メール、または個人の連絡先にすることができます。
この API は、Exchange Online 上 や Exchange Server 上 ではなく、インプレース アーカイブ メールボックスへのアクセスをサポートしていません。
メール REST API の使用
メール API 要求は、ユーザーの id プロパティ (一意の GUID)、電子メール アドレス、サインインしているユーザーの me
ショートカット エイリアスで識別できるユーザーに代わって実行されます。
Emailメッセージはメッセージ リソースによって表され、mailFolder で編成されます。
メッセージとメール フォルダーは、操作からGET
取得できる id プロパティによって識別されます。
重要
一般的に、メールボックス内で message ID と mailfolder ID が一意で常に同じ状態であるとは想定しないでください。 それらは、コピーまたは移動などの特定の操作の後に変更される可能性があります。 メッセージが同じメールボックスに残っている限り、同じ ID を保持するために 不変 ID を使用することもできます。ただし、下書きメッセージの送信およびいくつかのその他のシナリオの場合は除きます。 詳細については、「不変 ID の有効期間」を確認してください。
メッセージ本文は、HTML 形式またはテキスト形式になります。
Inbox
、Drafts
、SentItems
、DeletedItems
などの既知のフォルダー名を使用して、すべてのユーザーに既定で存在する特定のメール フォルダーを識別できます。 サポートされている既知のフォルダー名の一覧については、「mailFolder リソースの種類」を参照してください。
たとえば、最初にフォルダー ID を取得せずに、サインインしているユーザーの Outlook 送信済みアイテム フォルダー内のメッセージを取得できます。
GET /me/mailFolders('SentItems')/messages?$select=sender,subject
一般的なユース ケース
message リソースは、UI で利用可能な機能に対応する categories、conversationId、flag、importance などのプロパティを公開し、アプリを自動化したり、組み込みの Outlook ユーザー エクスペリエンスを統合したりできるようにします。
Microsoft Graph API には、メッセージの一般的なユース ケースをサポートするメソッドとアクションも用意されています。
ユース ケース | REST リソース | 関連項目 |
---|---|---|
ユーザー指向のアクション | ||
メッセージを下書き、読み取り、返信、転送、送信、更新、削除する | message | message のメソッド |
メールボックス所有者の代理としてメッセージを送信するように別のユーザーに委任する | message | メッセージの from プロパティと sender プロパティの設定 |
ユーザーがより重要なメッセージを最初に表示できるようにする | inferenceClassificationOverride | 優先受信トレイ |
検索フォルダ―でメッセージの検索を行い、メッセージを取得する | mailSearchFolder | mailSearchFolder のメソッド |
メッセージまたはメッセージの添付ファイルの MIME コンテンツを取得する | message | MIME コンテンツを取得する |
MIME コンテンツでメッセージを送信する | メッセージ | MIME コンテンツを送信する |
メッセージの添付ファイルを追加、取得、削除する |
attachment、 fileAttachment、 itemAttachment、 referenceAttachment、 message |
添付ファイルのメソッド |
ユーザーの言語とタイムゾーンの選択肢を取得する |
localeInfo、 timeZoneInformation |
supportedLanguages、 supportedTimeZones |
ユーザーの自動応答、ロケール、タイム ゾーン、就業時間を取得または更新する |
mailboxSettings、 automaticRepliesSetting、 localeInfo、 workingHours |
ユーザーのメールボックスの設定を取得する、 ユーザーのメールボックスの設定を更新する |
不在など、他の受信者の特別な状態のメールヒントを取得する |
user、 mailTips |
メール ヒントを取得する |
メールとフォルダーの管理 | ||
メール フォルダー階層内のメッセージを整理する | mailFolder | mailFolder のメソッド |
メッセージを分類する | outlookCategory | outlookCategory のメソッド |
受信トレイのルールを使用して、特定の着信メッセージを転送するなどの操作を自動化する | messageRule | messageRule のメソッド |
メッセージのインターネット メッセージ ヘッダーを取得する | message | メッセージの internetMessageHeaders プロパティを取得します。 |
メッセージの検索とフィルター処理 | message | クエリ パラメーター |
フォルダー内のメッセージに対する変更の通知を受け取る | subscription | Microsoft Graph の Webhooks での作業 |
メッセージまたはメール フォルダーの階層を同期する | message | フォルダー内のメッセージへの増分の変更を取得する |
アプリ開発 | ||
カスタム アプリのデータをメッセージのインターネット メッセージ ヘッダーとして追加する | message | メッセージの internetMessageHeaders プロパティにカスタム データを追加します。 |
拡張機能を使用してカスタム アプリのデータをメッセージに追加する |
openTypeExtension、 schemaExtension |
拡張機能を使用してカスタム データをリソースに追加する |
公開の度合いが不十分の Outlook MAPI プロパティのカスタム データにアクセスする |
singleValueLegacyExtendedProperty、 multiValueLegacyExtendedProperty |
Outlook の拡張プロパティの概要 |
次の手順
メール API は、ユーザーと連携するための新しい方法を開発することができます。
- Outlook メール API の概要
- message リソースと mailFolder リソースのメソッド、プロパティ、リレーションシップについて詳しく説明します。
- Graph エクスプローラーで API をお試しください。