次の方法で共有


Office.MessageRead interface

Office.context.mailbox.item のメッセージ読み取りモード。

重要:

  • これは内部 Outlook オブジェクトであり、既存のインターフェイスを介して直接公開されることはありません。 これは、 Office.context.mailbox.itemのモードとして扱う必要があります。 詳細については、「 オブジェクト モデル 」ページを参照してください。

  • メッセージで Office.context.mailbox.item を呼び出すときは、Outlook クライアントの閲覧ウィンドウを有効にする必要があることに注意してください。 閲覧ウィンドウを構成する方法のガイダンスについては、「閲覧 ウィンドウを使用してメッセージをプレビューするように構成する」を参照してください。

親インターフェイス:

Extends

注釈

// The following code builds an HTML string with details of all attachments on the current item.
 const item = Office.context.mailbox.item;
 let outputString = "";
 if (item.attachments.length > 0) {
     for (let i = 0 ; i < item.attachments.length ; i++) {
         const attachment = item.attachments[i];
         outputString += "<BR>" + i + ". Name: ";
         outputString += attachment.name;
         outputString += "<BR>ID: " + attachment.id;
         outputString += "<BR>contentType: " + attachment.contentType;
         outputString += "<BR>size: " + attachment.size;
         outputString += "<BR>attachmentType: " + attachment.attachmentType;
         outputString += "<BR>isInline: " + attachment.isInline;
     }
 }
 console.log(outputString);

プロパティ

attachments

項目の添付ファイルを配列として取得します。

body

アイテムの本文を操作するメソッドを提供するオブジェクトを取得します。

cc

メッセージの CC (カーボン コピー) の受信者へのアクセスを提供します。 オブジェクトの種類とアクセス レベルは、現在の項目のモードによって異なります。

cc プロパティは、メッセージの Cc 行にリストされている各受信者の EmailAddressDetails オブジェクトを含む配列を返します。 返される受信者の最大数は、Outlook クライアントによって異なります。

  • クラシック Windows: 500 人の受信者

  • Android、クラシック Mac UI、iOS: 100 受信者

  • Web ブラウザー、新しい Outlook: 20 人の受信者 (折りたたまれたビュー)、500 人の受信者 (展開ビュー)

  • 新しい Mac UI: 制限なし

conversationId

特定のメッセージが含まれている電子メールの会話の識別子を取得します。

メール アプリを閲覧フォームでアクティブ化するか、新規作成フォームの返信でアクティブ化すると、このプロパティで整数を取得することができます。 その後、ユーザーが返信の件名を変更した場合、その返信の送信時にメッセージの会話 ID が変更され、以前に取得した値は適用されなくなります。

新規作成フォームで新しいアイテムに対してこのプロパティに null を取得します。 ユーザーが件名を設定し、アイテムを保存する場合、conversationId プロパティは値を返します。

dateTimeCreated

アイテムが作成された日時を取得します。

dateTimeModified

アイテムが最後に変更された日時を取得します。

end

予定が終了する日時を取得します。

end プロパティは、協定世界時 (UTC) の日付と時刻の値として表されるDate オブジェクトです。 convertToLocalClientTime メソッドを使用して、end プロパティの値をクライアントのローカルの日付と時刻に変換できます。

Time.setAsync メソッドを使用して終了時刻を設定する場合、convertToUtcClientTime メソッドを使用して、クライアント上のローカルの時刻をサーバーの UTC に変換する必要があります。

from

メッセージの送信者の電子メール アドレスを取得します。

メッセージが代理人から送信された場合を除き、from プロパティと sender プロパティは同一人物を表します。 その場合、 from プロパティは委任子を表し、 sender プロパティはデリゲートを表します。

: from プロパティ内のEmailAddressDetails オブジェクトの recipientType プロパティは未定義です。

from プロパティは、EmailAddressDetails オブジェクトを返します。

internetMessageId

電子メール メッセージのインターネット メッセージ識別子を取得します。

重要: [送信済みアイテム] フォルダーでは、最近送信されたアイテムで internetMessageId をまだ使用できない場合があります。 その場合は、Exchange Web Services を使用してサーバーからこのプロパティを取得することを検討してください

itemClass

選択したメッセージの Exchange Web Services アイテム クラスを取得します。

itemId

現在の アイテムの Exchange Web Services (EWS) アイテム識別子 を取得します。

itemType

インスタンスが表しているアイテムの種類を取得します。

itemType プロパティは、アイテム オブジェクト インスタンスがメッセージか予定かを示す、ItemType列挙値のいずれかを返します。

location

会議出席依頼の場所を取得します。

location プロパティは、予定の場所を格納した文字列を返します。

normalizedSubject

すべてのプレフィックスが削除された項目の件名を取得します (RE: と FWD:を含む)。

normalizedSubject プロパティは、メール プログラムによって追加される標準プレフィックス (RE: や FW:など) を含むアイテムの件名を取得します。 これらのプレフィックスが付いたままの状態でアイテムの件名を取得するには、subject プロパティを使用します。

notificationMessages

アイテムの通知メッセージを取得します。

sender

電子メール メッセージの送信者の電子メール アドレスを取得します。

メッセージが代理人から送信された場合を除き、from プロパティと sender プロパティは同一人物を表します。 その場合、 from プロパティは委任子を表し、 sender プロパティはデリゲートを表します。

: sender プロパティ内のEmailAddressDetails オブジェクトの recipientType プロパティは未定義です。

start

予定が開始される日付と時刻を取得します。

start プロパティは、協定世界時 (UTC) の日付と時刻の値として表されるDate オブジェクトです。 convertToLocalClientTime メソッドを使用して、値をクライアントのローカルの日付と時刻に変換できます。

subject

アイテムの件名フィールドに表示される説明を取得します。

subject プロパティは、電子メール サーバーによって送信されたアイテムの件名全体を取得または設定します。

subject プロパティは文字列を返します。 normalizedSubject プロパティを使用して、件名から RE: や FW: などの先頭プレフィックスを差し引いた値を取得します。

to

メッセージの To 行にある受信者へのアクセスを提供します。 オブジェクトの種類とアクセス レベルは、現在の項目のモードによって異なります。

to プロパティは、メッセージの [宛先] 行に一覧表示されている各受信者の EmailAddressDetails オブジェクトを含む配列を返します。 返される受信者の最大数は、Outlook クライアントによって異なります。

  • クラシック Windows: 500 人の受信者

  • Android、クラシック Mac UI、iOS: 100 受信者

  • Web ブラウザー、新しい Outlook: 20 人の受信者 (折りたたまれたビュー)、500 人の受信者 (展開ビュー)

  • 新しい Mac UI: 制限なし

メソッド

displayReplyAllForm(formData)

選択したメッセージの送信者とすべての受信者、または開催者、および選択した予定のすべての出席者を含む返信フォームを表示します。

displayReplyForm(formData)

選択したメッセージの送信者のみ、または選択した予定の開催者のみを含む回答フォームが表示されます。

getEntities()

選択したアイテムの本文にあるエンティティを取得します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getEntitiesByType(entityType)

選択したアイテムの本文内で検出された指定のエンティティ型のすべてのエンティティを含む配列を取得します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getFilteredEntitiesByName(name)

アドインのみのマニフェスト ファイルで定義されている名前付きフィルターを渡す、選択した項目の既知のエンティティを返します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getRegExMatches()

アドインのみのマニフェスト ファイルで定義されている正規表現に一致する、選択した項目の文字列値を返します。

getRegExMatchesByName(name)

アドインのみのマニフェスト ファイルで定義されている名前付き正規表現と一致する、選択した項目の文字列値を返します。

loadCustomPropertiesAsync(callback, userContext)

選択されたアイテムのこのアドインのカスタム プロパティを非同期に読み込みます。

カスタム プロパティは、アプリごとに項目ごとにキーと値のペアとして格納されます。 このメソッドはコールバックで CustomProperties オブジェクトを返します。これにより、現在のアイテムと現在のアドインに固有のカスタム プロパティにアクセスするメソッドが提供されます。 カスタム プロパティはアイテムで暗号化されないため、セキュリティで保護されたストレージとして使用しないでください。

カスタム プロパティは asyncResult.value プロパティの CustomProperties オブジェクトとして指定されます。 このオブジェクトを使用して、メール アイテムのカスタム プロパティを取得、設定、保存、および削除できます。

プロパティの詳細

attachments

項目の添付ファイルを配列として取得します。

attachments: AttachmentDetails[];

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

: 一部の種類のファイルは、潜在的なセキュリティの問題のために Outlook によってブロックされるため、返されません。 詳細については、「 Outlook でブロックされた添付ファイル」を参照してください。

// The following code builds an HTML string with details of all attachments on the current item.
const item = Office.context.mailbox.item;
let outputString = "";

if (item.attachments.length > 0) {
    for (let i = 0 ; i < item.attachments.length ; i++) {
        const attachment = item.attachments[i];
        outputString += "<BR>" + i + ". Name: ";
        outputString += attachment.name;
        outputString += "<BR>ID: " + attachment.id;
        outputString += "<BR>contentType: " + attachment.contentType;
        outputString += "<BR>size: " + attachment.size;
        outputString += "<BR>attachmentType: " + attachment.attachmentType;
        outputString += "<BR>isInline: " + attachment.isInline;
    }
}

console.log(outputString);
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/get-attachments-read.yaml

const attachments = Office.context.mailbox.item.attachments;
console.log(attachments);

body

アイテムの本文を操作するメソッドを提供するオブジェクトを取得します。

body: Body;

プロパティ値

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// This example gets the body of the item as plain text.
Office.context.mailbox.item.body.getAsync(
    "text",
    { asyncContext: "This is passed to the callback" },
    function callback(result) {
        // Do something with the result.
    });

// The following is an example of the result parameter passed to the callback function.
{
    "value": "TEXT of whole body (including threads below)",
    "status": "succeeded",
    "asyncContext": "This is passed to the callback"
}

cc

メッセージの CC (カーボン コピー) の受信者へのアクセスを提供します。 オブジェクトの種類とアクセス レベルは、現在の項目のモードによって異なります。

cc プロパティは、メッセージの Cc 行にリストされている各受信者の EmailAddressDetails オブジェクトを含む配列を返します。 返される受信者の最大数は、Outlook クライアントによって異なります。

  • クラシック Windows: 500 人の受信者

  • Android、クラシック Mac UI、iOS: 100 受信者

  • Web ブラウザー、新しい Outlook: 20 人の受信者 (折りたたまれたビュー)、500 人の受信者 (展開ビュー)

  • 新しい Mac UI: 制限なし

cc: EmailAddressDetails[];

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-cc-message-read.yaml

const msgCc = Office.context.mailbox.item.cc;
console.log("Message copied to:");
for (let i = 0; i < msgCc.length; i++) {
  console.log(msgCc[i].displayName + " (" + msgCc[i].emailAddress + ")");
}

conversationId

特定のメッセージが含まれている電子メールの会話の識別子を取得します。

メール アプリを閲覧フォームでアクティブ化するか、新規作成フォームの返信でアクティブ化すると、このプロパティで整数を取得することができます。 その後、ユーザーが返信の件名を変更した場合、その返信の送信時にメッセージの会話 ID が変更され、以前に取得した値は適用されなくなります。

新規作成フォームで新しいアイテムに対してこのプロパティに null を取得します。 ユーザーが件名を設定し、アイテムを保存する場合、conversationId プロパティは値を返します。

conversationId: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-conversation-id-message.yaml

console.log(`Conversation ID: ${Office.context.mailbox.item.conversationId}`);

dateTimeCreated

アイテムが作成された日時を取得します。

dateTimeCreated: Date;

プロパティ値

Date

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-date-time-created-read.yaml

console.log(`Creation date and time: ${Office.context.mailbox.item.dateTimeCreated}`);

dateTimeModified

アイテムが最後に変更された日時を取得します。

dateTimeModified: Date;

プロパティ値

Date

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

重要: このプロパティは、Outlook on Android または iOS ではサポートされていません。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイスで Outlook でサポートされている Outlook JavaScript API」を参照してください。

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-date-time-modified-read.yaml

console.log(`Date and time item last modified: ${Office.context.mailbox.item.dateTimeModified}`);

end

予定が終了する日時を取得します。

end プロパティは、協定世界時 (UTC) の日付と時刻の値として表されるDate オブジェクトです。 convertToLocalClientTime メソッドを使用して、end プロパティの値をクライアントのローカルの日付と時刻に変換できます。

Time.setAsync メソッドを使用して終了時刻を設定する場合、convertToUtcClientTime メソッドを使用して、クライアント上のローカルの時刻をサーバーの UTC に変換する必要があります。

end: Date;

プロパティ値

Date

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-end-read.yaml

console.log(`Appointment ends: ${Office.context.mailbox.item.end}`);

from

メッセージの送信者の電子メール アドレスを取得します。

メッセージが代理人から送信された場合を除き、from プロパティと sender プロパティは同一人物を表します。 その場合、 from プロパティは委任子を表し、 sender プロパティはデリゲートを表します。

: from プロパティ内のEmailAddressDetails オブジェクトの recipientType プロパティは未定義です。

from プロパティは、EmailAddressDetails オブジェクトを返します。

from: EmailAddressDetails;

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-from-message-read.yaml

const msgFrom = Office.context.mailbox.item.from;
console.log("Message received from: " + msgFrom.displayName + " (" + msgFrom.emailAddress + ")");

internetMessageId

電子メール メッセージのインターネット メッセージ識別子を取得します。

重要: [送信済みアイテム] フォルダーでは、最近送信されたアイテムで internetMessageId をまだ使用できない場合があります。 その場合は、Exchange Web Services を使用してサーバーからこのプロパティを取得することを検討してください

internetMessageId: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-internet-message-id-read.yaml

console.log(`Internet message ID: ${Office.context.mailbox.item.internetMessageId}`);

itemClass

選択したメッセージの Exchange Web Services アイテム クラスを取得します。

itemClass: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

重要:

次の表に、メッセージの既定の項目クラスを示します。

アイテム クラス 説明
IPM.Note 新しいメッセージとメッセージ応答
IPM。Note.SMIME 署名可能な暗号化されたメッセージ
IPM。Note.SMIME.MultipartSigned 暗号化キーが必要です。
IPM.Schedule.Meeting.Request 会議出席依頼
IPM.Schedule.Meeting.Canceled 会議のキャンセル
IPM。Schedule.Meeting.Resp.Neg 会議出席依頼に対する辞退の通知
IPM。Schedule.Meeting.Resp.Pos 会議出席依頼を受け入れるための応答
IPM。Schedule.Meeting.Resp.Tent 会議出席依頼に対する仮の受諾の通知

既定の項目クラスを拡張するカスタム クラスを作成できます。 たとえば、 IPM.Note.Contoso

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-item-class-read.yaml

console.log(`Item class: ${Office.context.mailbox.item.itemClass}`);

itemId

現在の アイテムの Exchange Web Services (EWS) アイテム識別子 を取得します。

itemId: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

重要:

  • itemId プロパティは作成モードでは使用できません。 項目識別子が必要な場合は、 Office.context.mailbox.item.saveAsync メソッドを使用してアイテムをストアに保存できます。これにより、コールバック関数の asyncResult.value パラメーターにアイテム識別子が返されます。 項目が既に保存されている場合は、代わりに Office.context.mailbox.item.getItemIdAsync メソッドを呼び出すことができます。

  • 返されるアイテム ID は、Outlook エントリ ID または Outlook REST API で使用される ID と同じではありません。 この値を使用して REST API 呼び出しを行う前に、 Office.context.mailbox.convertToRestIdを使用して変換する必要があります。

// The following code checks for the presence of an item
// identifier. If the `itemId` property returns `null` or
// `undefined`, it saves the item to the store and gets the
// item identifier from the asynchronous result.
// **Important**: `saveAsync` was introduced with requirement set 1.3
// so you can't get the `itemId` in Compose mode in earlier sets.
let itemId = Office.context.mailbox.item.itemId;
if (itemId === null || itemId == undefined) {
    Office.context.mailbox.item.saveAsync(function(result) {
        itemId = result.value;
    });
}

itemType

インスタンスが表しているアイテムの種類を取得します。

itemType プロパティは、アイテム オブジェクト インスタンスがメッセージか予定かを示す、ItemType列挙値のいずれかを返します。

itemType: MailboxEnums.ItemType | string;

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-item-type.yaml

const itemType = Office.context.mailbox.item.itemType;
switch (itemType) {
    case Office.MailboxEnums.ItemType.Appointment:
        console.log(`Current item is an ${itemType}.`);
        break;
    case Office.MailboxEnums.ItemType.Message:
        console.log(`Current item is a ${itemType}. A message could be an email, meeting request, meeting response, or meeting cancellation.`);
        break;
}

location

会議出席依頼の場所を取得します。

location プロパティは、予定の場所を格納した文字列を返します。

location: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-location-read.yaml

console.log(`Appointment location: ${Office.context.mailbox.item.location}`);

normalizedSubject

すべてのプレフィックスが削除された項目の件名を取得します (RE: と FWD:を含む)。

normalizedSubject プロパティは、メール プログラムによって追加される標準プレフィックス (RE: や FW:など) を含むアイテムの件名を取得します。 これらのプレフィックスが付いたままの状態でアイテムの件名を取得するには、subject プロパティを使用します。

normalizedSubject: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-normalized-subject-read.yaml

console.log(`Normalized subject: ${Office.context.mailbox.item.normalizedSubject}`);

notificationMessages

アイテムの通知メッセージを取得します。

notificationMessages: NotificationMessages;

プロパティ値

注釈

[ API セット: メールボックス 1.3 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/35-notifications/add-getall-remove.yaml

// Adds a progress indicator to the mail item.
const id = $("#notificationId").val().toString();
const details =
  {
    type: Office.MailboxEnums.ItemNotificationMessageType.ProgressIndicator,
    message: "Progress indicator with id = " + id
  };
Office.context.mailbox.item.notificationMessages.addAsync(id, details, handleResult);

...

// Adds an informational notification to the mail item.
const id = $("#notificationId").val().toString();
const details =
  {
    type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,
    message: "Non-persistent informational notification message with id = " + id,
    icon: "icon1",
    persistent: false
  };
Office.context.mailbox.item.notificationMessages.addAsync(id, details, handleResult);

...

// Adds a persistent information notification to the mail item.
const id = $("#notificationId").val().toString();
const details =
  {
    type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,
    message: "Persistent informational notification message with id = " + id,
    icon: "icon1",
    persistent: true
  };
Office.context.mailbox.item.notificationMessages.addAsync(id, details, handleResult);

...

// Gets all the notification messages and their keys for the current mail item.
Office.context.mailbox.item.notificationMessages.getAllAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log(asyncResult.error.message);
    return;
  }

  console.log(asyncResult.value);
});

...

// Replaces a notification message of a given key with another message.
const id = $("#notificationId").val().toString();
Office.context.mailbox.item.notificationMessages.replaceAsync(
  id,
  {
    type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage,
    message: "Notification message with id = " + id + " has been replaced with an informational message.",
    icon: "icon2",
    persistent: false
  },
  handleResult);

...

// Removes a notification message from the current mail item.
const id = $("#notificationId").val().toString();
Office.context.mailbox.item.notificationMessages.removeAsync(id, handleResult);

sender

電子メール メッセージの送信者の電子メール アドレスを取得します。

メッセージが代理人から送信された場合を除き、from プロパティと sender プロパティは同一人物を表します。 その場合、 from プロパティは委任子を表し、 sender プロパティはデリゲートを表します。

: sender プロパティ内のEmailAddressDetails オブジェクトの recipientType プロパティは未定義です。

sender: EmailAddressDetails;

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-sender-message-read.yaml

const msgSender = Office.context.mailbox.item.sender;
console.log("Sender: " + msgSender.displayName + " (" + msgSender.emailAddress + ")");

start

予定が開始される日付と時刻を取得します。

start プロパティは、協定世界時 (UTC) の日付と時刻の値として表されるDate オブジェクトです。 convertToLocalClientTime メソッドを使用して、値をクライアントのローカルの日付と時刻に変換できます。

start: Date;

プロパティ値

Date

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-start-read.yaml

console.log(`Appointment starts: ${Office.context.mailbox.item.start}`);

subject

アイテムの件名フィールドに表示される説明を取得します。

subject プロパティは、電子メール サーバーによって送信されたアイテムの件名全体を取得または設定します。

subject プロパティは文字列を返します。 normalizedSubject プロパティを使用して、件名から RE: や FW: などの先頭プレフィックスを差し引いた値を取得します。

subject: string;

プロパティ値

string

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-subject-read.yaml

console.log(`Subject: ${Office.context.mailbox.item.subject}`);

to

メッセージの To 行にある受信者へのアクセスを提供します。 オブジェクトの種類とアクセス レベルは、現在の項目のモードによって異なります。

to プロパティは、メッセージの [宛先] 行に一覧表示されている各受信者の EmailAddressDetails オブジェクトを含む配列を返します。 返される受信者の最大数は、Outlook クライアントによって異なります。

  • クラシック Windows: 500 人の受信者

  • Android、クラシック Mac UI、iOS: 100 受信者

  • Web ブラウザー、新しい Outlook: 20 人の受信者 (折りたたまれたビュー)、500 人の受信者 (展開ビュー)

  • 新しい Mac UI: 制限なし

to: EmailAddressDetails[];

プロパティ値

注釈

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-to-message-read.yaml

const msgTo = Office.context.mailbox.item.to;
const distributionLists = [];
const externalRecipients = [];
const internalRecipients = [];
const otherRecipients = [];
for (let i = 0; i < msgTo.length; i++) {
    switch (msgTo[i].recipientType) {
    case Office.MailboxEnums.RecipientType.DistributionList:
        distributionLists.push(msgTo[i]);
        break;
    case Office.MailboxEnums.RecipientType.ExternalUser:
        externalRecipients.push(msgTo[i]);
        break;
    case Office.MailboxEnums.RecipientType.User:
        internalRecipients.push(msgTo[i]);
        break;
    case Office.MailboxEnums.RecipientType.Other:
        otherRecipients.push(msgTo[i]);
    }
}

if (distributionLists.length > 0) {
    console.log("Distribution Lists:");
    distributionLists.forEach((recipient) => console.log(`${recipient.displayName}, ${recipient.emailAddress}`));
}

if (externalRecipients.length > 0) {
    console.log("External Recipients:");
    externalRecipients.forEach((recipient) => console.log(`${recipient.displayName}, ${recipient.emailAddress}`));
}

if (internalRecipients.length > 0) {
    console.log("Internal Recipients:");
    internalRecipients.forEach((recipient) => console.log(`${recipient.displayName}, ${recipient.emailAddress}`));
}

if (otherRecipients.length > 0) {
    console.log("Other Recipients:");
    otherRecipients.forEach((recipient) => console.log(`${recipient.displayName}, ${recipient.emailAddress}`));
}

メソッドの詳細

displayReplyAllForm(formData)

選択したメッセージの送信者とすべての受信者、または開催者、および選択した予定のすべての出席者を含む返信フォームを表示します。

displayReplyAllForm(formData: string | ReplyFormData): void;

パラメーター

formData

string | Office.ReplyFormData

回答フォームの本文を表すテキストと HTML が含まれる文字列。 文字列は、本文または添付ファイルのデータとコールバック関数を含む 32 KB または ReplyFormData オブジェクトに制限されています。

戻り値

void

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

重要:

  • Outlook on the webおよび新しい Outlook on Windowsでは、返信フォームは 3 列ビューにポップアップ フォームとして表示され、2 列または 1 列ビューにはポップアップ フォームとして表示されます。

  • 文字列パラメーターのいずれかが制限値を超えると、displayReplyAllForm は例外をスローします。

  • formData.attachments パラメーターに添付ファイルを指定すると、Outlook はすべての添付ファイルをダウンロードし、返信フォームに添付しようとします。 添付ファイルの追加に失敗すると、フォーム UI でエラーが表示されます。 表示できない場合、エラー メッセージはスローされません。

  • このメソッドは、Outlook on Android または iOS ではサポートされていません。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイスで Outlook でサポートされている Outlook JavaScript API」を参照してください。

// The following code passes a string to the `displayReplyAllForm` method.
Office.context.mailbox.item.displayReplyAllForm('hello there');
Office.context.mailbox.item.displayReplyAllForm('<b>hello there</b>');

// Reply with an empty body.
Office.context.mailbox.item.displayReplyAllForm({});

// Reply with just a body.
Office.context.mailbox.item.displayReplyAllForm(
{
'htmlBody' : 'hi'
});

// Reply with a body and a file attachment.
Office.context.mailbox.item.displayReplyAllForm(
{
    'htmlBody' : 'hi',
    'attachments' :
    [
        {
        'type' : Office.MailboxEnums.AttachmentType.File,
        'name' : 'squirrel.png',
        'url' : 'http://i.imgur.com/sRgTlGR.jpg'
        }
    ]
});

// Reply with a body and an item attachment.
Office.context.mailbox.item.displayReplyAllForm(
{
    'htmlBody' : 'hi',
    'attachments' :
    [
        {
        'type' : 'item',
        'name' : 'rand',
        'itemId' : Office.context.mailbox.item.itemId
        }
    ]
});

// Reply with a body, file attachment, item attachment, and a callback.
Office.context.mailbox.item.displayReplyAllForm(
{
    'htmlBody' : 'hi',
    'attachments' :
    [
        {
            'type' : Office.MailboxEnums.AttachmentType.File,
            'name' : 'squirrel.png',
            'url' : 'http://i.imgur.com/sRgTlGR.jpg'
        },
        {
            'type' : 'item',
            'name' : 'rand',
            'itemId' : Office.context.mailbox.item.itemId
        }
    ],
    'callback' : function(asyncResult)
    {
        console.log(asyncResult.value);
    }
});
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-reply-forms.yaml

Office.context.mailbox.item.displayReplyAllForm("This is a reply ALL with <b>some bold text</b>.");

displayReplyForm(formData)

選択したメッセージの送信者のみ、または選択した予定の開催者のみを含む回答フォームが表示されます。

displayReplyForm(formData: string | ReplyFormData): void;

パラメーター

formData

string | Office.ReplyFormData

回答フォームの本文を表すテキストと HTML が含まれる文字列。 文字列は、本文または添付ファイルのデータとコールバック関数を含む 32 KB または ReplyFormData オブジェクトに制限されています。

戻り値

void

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

重要:

  • Outlook on the webおよび新しい Outlook on Windowsでは、返信フォームは 3 列ビューにポップアップ フォームとして表示され、2 列または 1 列ビューにはポップアップ フォームとして表示されます。

  • 文字列パラメーターのいずれかが制限値を超えると、displayReplyForm は例外をスローします。

  • formData.attachments パラメーターに添付ファイルを指定すると、Outlook はすべての添付ファイルをダウンロードし、返信フォームに添付しようとします。 添付ファイルの追加に失敗すると、フォーム UI でエラーが表示されます。 表示できない場合、エラー メッセージはスローされません。

  • このメソッドは、Outlook on Android または iOS ではサポートされていません。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイスで Outlook でサポートされている Outlook JavaScript API」を参照してください。

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-reply-forms.yaml

Office.context.mailbox.item.displayReplyForm("This is a reply with <i>some text in italics</i>.");

...

Office.context.mailbox.item.displayReplyForm({
  htmlBody: "This is a reply with an inline image and an item attachment.<br><img src='cid:dog.jpg'>",
  attachments: [
    { type: "file", url: "https://i.imgur.com/9S36xvA.jpg", name: "dog.jpg", inLine: true },
    { type: "item", itemId: Office.context.mailbox.item.itemId, name: "test_email.msg" }
  ],
  callback: (result) => {
    if (result.status === Office.AsyncResultStatus.Failed) {
      console.error(`Action failed with message ${result.error.message}`);
      return;
    }

    console.log("Created reply with attachments.");
  }
});

getEntities()

警告

この API は非推奨になりました。

Use regular expression rules instead.

選択したアイテムの本文にあるエンティティを取得します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getEntities(): Entities;

戻り値

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

getEntitiesByType(entityType)

警告

この API は非推奨になりました。

Use regular expression rules instead.

選択したアイテムの本文内で検出された指定のエンティティ型のすべてのエンティティを含む配列を取得します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getEntitiesByType(entityType: MailboxEnums.EntityType | string): Array<string | Contact | MeetingSuggestion | PhoneNumber | TaskSuggestion>;

パラメーター

entityType

Office.MailboxEnums.EntityType | string

EntityType列挙値の 1 つ。

戻り値

entityTypeで渡された値がEntityType列挙体の有効なメンバーでない場合、メソッドはnullを返します。 指定した型のエンティティがアイテムの本文に存在しない場合、メソッドは空の配列を返します。 それ以外の場合は、返される配列内のオブジェクトの型は、entityType パラメーター内の要求されたエンティティの型によって異なります。

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 制限あり

適用できる Outlook モード: メッセージの読み取り

getFilteredEntitiesByName(name)

警告

この API は非推奨になりました。

Use regular expression rules instead.

アドインのみのマニフェスト ファイルで定義されている名前付きフィルターを渡す、選択した項目の既知のエンティティを返します。

警告: エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

getFilteredEntitiesByName(name: string): Array<string | Contact | MeetingSuggestion | PhoneNumber | TaskSuggestion>;

パラメーター

name

string

一致するフィルターを定義する ItemHasKnownEntity ルール要素の名前。

戻り値

アドイン マニフェスト ファイルの ItemHasKnownEntity ルール要素で定義されている正規表現と、指定した FilterName 要素の値と一致するエンティティ。 name パラメーターと一致するFilterName要素値を持つItemHasKnownEntity要素がマニフェストに存在しない場合、メソッドはnullを返します。 name パラメーターがマニフェスト内のItemHasKnownEntity要素と一致するが、現在のアイテムに一致するエンティティがない場合、メソッドは空の配列を返します。

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

getRegExMatches()

アドインのみのマニフェスト ファイルで定義されている正規表現に一致する、選択した項目の文字列値を返します。

getRegExMatches(): any;

戻り値

any

アドイン マニフェスト ファイルで定義されている正規表現に一致する文字列の配列を格納するオブジェクト。 各配列の名前は、一致する ItemHasRegularExpressionMatch ルールの RegExName 属性の対応する値と等しくなります。 ItemHasRegularExpressionMatchルールの場合、一致する文字列は、そのルールによって指定された項目のプロパティで発生する必要があります。 単純型は、サポートされるプロパティを定義します。

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

重要:

  • エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

  • このメソッドは、Outlook アドインのライセンス認証ルール機能で使用されます。これは、Microsoft 365 の統合マニフェストではサポートされていません。

  • アイテムの body プロパティに ItemHasRegularExpressionMatch ルールを指定した場合、正規表現は本文をさらにフィルター処理し、アイテムの本文全体を返そうとしないでください。 .*などの正規表現を使用してアイテムの本文全体を取得すると、常に期待される結果が返されるとは限りません。 この場合、代わりに Body.getAsync メソッドを使用して本文全体を取得します。

  • このメソッドは、Outlook on Android または iOS ではサポートされていません。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイスで Outlook でサポートされている Outlook JavaScript API」を参照してください。

// Consider an add-in manifest has the following `Rule` element:
//<Rule xsi:type="RuleCollection" Mode="And">
//  <Rule xsi:type="ItemIs" FormType="Read" ItemType="Message" />
//  <Rule xsi:type="RuleCollection" Mode="Or">
//    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="fruits" RegExValue="apple|banana|coconut" PropertyName="BodyAsPlaintext" IgnoreCase="true" />
//    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="veggies" RegExValue="tomato|onion|spinach|broccoli" PropertyName="BodyAsPlaintext" IgnoreCase="true" />
//  </Rule>
//</Rule>

// The object returned from `getRegExMatches` would have two properties: `fruits` and `veggies`.
//{
//'fruits': ['apple','banana','Banana','coconut'],
//'veggies': ['tomato','onion','spinach','broccoli']
//}

// The following example shows how to access the array of
// matches for the regular expression rule elements `fruits`
// and `veggies`, which are specified in the manifest.
const allMatches = Office.context.mailbox.item.getRegExMatches();
const fruits = allMatches.fruits;
const veggies = allMatches.veggies;
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/75-regex-matches/contextual.yaml

// This API only works when you click on the highlighted word "ScriptLab".
console.log(Office.context.mailbox.item.getRegExMatches());

getRegExMatchesByName(name)

アドインのみのマニフェスト ファイルで定義されている名前付き正規表現と一致する、選択した項目の文字列値を返します。

getRegExMatchesByName(name: string): string[];

パラメーター

name

string

一致するフィルターを定義する ItemHasRegularExpressionMatch ルール要素の名前。

戻り値

string[]

アドイン マニフェスト ファイル内の ItemHasRegularExpressionMatch rule 要素で定義されている正規表現に一致する文字列と、指定した RegExName 要素値を含む配列。

注釈

[ API セット: メールボックス 1.1 ]

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: 予定出席者

重要:

  • エンティティベースのコンテキスト Outlook アドインは廃止されました。 ただし、正規表現ルールは引き続きサポートされています。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 コンテキスト Outlook アドイン」を参照してください。

  • このメソッドは、Outlook アドインのライセンス認証ルール機能で使用されます。これは、Microsoft 365 の統合マニフェストではサポートされていません。

  • アイテムの body プロパティに ItemHasRegularExpressionMatch ルールを指定した場合、正規表現は本文をさらにフィルター処理し、アイテムの本文全体を返そうとしないでください。 .*などの正規表現を使用してアイテムの本文全体を取得すると、常に期待される結果が返されるとは限りません。 この場合、代わりに Body.getAsync メソッドを使用して本文全体を取得します。

  • このメソッドは、Outlook on Android または iOS ではサポートされていません。 Outlook モバイルでサポートされている API の詳細については、「モバイル デバイスで Outlook でサポートされている Outlook JavaScript API」を参照してください。

// Consider an add-in manifest has the following `Rule` element:
//<Rule xsi:type="RuleCollection" Mode="And">
//  <Rule xsi:type="ItemIs" FormType="Read" ItemType="Message" />
//  <Rule xsi:type="RuleCollection" Mode="Or">
//    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="fruits" RegExValue="apple|banana|coconut" PropertyName="BodyAsPlaintext" IgnoreCase="true" />
//    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="veggies" RegExValue="tomato|onion|spinach|broccoli" PropertyName="BodyAsPlaintext" IgnoreCase="true" />
//  </Rule>
//</Rule>

// The object returned from `getRegExMatches` would have two properties: `fruits` and `veggies`.
//{
//'fruits': ['apple','banana','Banana','coconut'],
//'veggies': ['tomato','onion','spinach','broccoli']
//}

const fruits = Office.context.mailbox.item.getRegExMatchesByName("fruits");
const veggies = Office.context.mailbox.item.getRegExMatchesByName("veggies");
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/75-regex-matches/contextual.yaml

// This API only works when you click on the highlighted word "ScriptLab".
console.log(Office.context.mailbox.item.getRegExMatchesByName("sampleRegexName"));

loadCustomPropertiesAsync(callback, userContext)

選択されたアイテムのこのアドインのカスタム プロパティを非同期に読み込みます。

カスタム プロパティは、アプリごとに項目ごとにキーと値のペアとして格納されます。 このメソッドはコールバックで CustomProperties オブジェクトを返します。これにより、現在のアイテムと現在のアドインに固有のカスタム プロパティにアクセスするメソッドが提供されます。 カスタム プロパティはアイテムで暗号化されないため、セキュリティで保護されたストレージとして使用しないでください。

カスタム プロパティは asyncResult.value プロパティの CustomProperties オブジェクトとして指定されます。 このオブジェクトを使用して、メール アイテムのカスタム プロパティを取得、設定、保存、および削除できます。

loadCustomPropertiesAsync(callback: (asyncResult: Office.AsyncResult<CustomProperties>) => void, userContext?: any): void;

パラメーター

callback

(asyncResult: Office.AsyncResult<Office.CustomProperties>) => void

メソッドが完了すると、 callback パラメーターで渡された関数が、 Office.AsyncResult型の 1 つのパラメーターで呼び出されます。

userContext

any

省略可能。 開発者は、コールバック関数でアクセスする任意のオブジェクトを指定できます。 このオブジェクトには、コールバック関数の asyncResult.asyncContext プロパティによってアクセスすることができます。

戻り値

void

注釈

[ API セット: メールボックス 1.1 ]

カスタム プロパティの詳細については、「 Outlook アドインのアドイン メタデータを取得して設定する」を参照してください。

最小アクセス許可レベル: 読み取り項目

適用できる Outlook モード: メッセージの読み取り

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/15-item-custom-properties/load-set-get-save.yaml

Office.context.mailbox.item.loadCustomPropertiesAsync((result) => {
  if (result.status === Office.AsyncResultStatus.Failed) {
    console.error(`loadCustomPropertiesAsync failed with message ${result.error.message}`);
    return;
  }

  customProps = result.value;
  console.log("Loaded the CustomProperties object.");
});