Office.Mailbox interface
提供对 Microsoft Outlook 外接程序对象模型的访问权限。
键属性:
diagnostics
:向 Outlook 加载项提供诊断信息。item
:提供用于在 Outlook 外接程序中访问邮件或约会的方法和属性。userProfile
:提供有关 Outlook 外接程序中用户的信息。
注解
最低权限级别: 受限
适用的 Outlook 模式:撰写或阅读
属性
diagnostics | 将诊断信息提供给 Outlook 外接程序。 包含以下成员。
有关详细信息,请参阅 Office.Diagnostics。 |
ews |
获取此电子邮件帐户的 Exchange Web Services (EWS) 终点的 URL。 |
item | 邮箱项。 根据打开加载项的上下文,项类型可能会有所不同。 如果只想查看特定类型或模式的 IntelliSense,请将此项转换为以下项之一: MessageCompose、 MessageRead、 AppointmentCompose、 AppointmentRead 重要提示: |
master |
获取一个 对象,该对象提供用于管理与邮箱关联的类别主列表的方法。 |
rest |
获取此电子邮件帐户的 REST 终结点的 URL。 应用必须具有在其清单中指定的 读取项 权限,才能在读取模式下调用 在撰写模式中,必须调用 但是,在委托或共享方案中,应改用 |
user |
有关与邮箱关联的用户的信息。 这包括其帐户类型、显示名称、电子邮件地址和时区。 有关详细信息,请参阅 Office.UserProfile |
方法
add |
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Mailbox 对象模型 事件部分。 |
add |
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Mailbox 对象模型 事件部分。 |
convert |
将项目 ID 格式化(从 REST 转换为 EWS 格式)。 通过 REST API 检索的项 Id(如 Outlook 邮件 API 或 Microsoft Graph)使用与 Exchange Web 服务 (EWS) 所使用格式不同的格式。 方法将 REST 格式化的 ID 转换为正确的 EWS 格式。 |
convert |
获取包含以本地客户端时间表示的时间信息的字典。 邮件应用用于Outlook 网页版或桌面客户端的日期和时间可以使用不同的时区。 Outlook 使用客户端计算机时区;Outlook 网页版使用 Exchange 管理员 中心 (EAC) 设置的时区。 应对日期和时间值进行处理,以便用户界面上显示的值始终与用户预期的时区一致。 如果邮件应用在桌面客户端上的 Outlook 中运行,该方法 |
convert |
将项目 ID 格式化(从 EWS 转换为 REST 格式)。 |
convert |
方法 |
display |
显示现有日历约会。 方法 在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。 在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。 |
display |
显示现有日历约会。
在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。 在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示现有日历约会。
在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。 在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示现有邮件。 方法 在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。 |
display |
显示现有邮件。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。 不要将 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示现有邮件。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。 如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。 不要将 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示用于新建日历约会的表单。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果未将任何与会者指定为输入参数,该方法将显示带有 “保存 ”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。 在 Outlook 富客户端和 Outlook RT 中,如果在 、 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 |
display |
显示用于新建日历约会的表单。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果你未将任何与会者指定为输入参数,该方法将显示为一个包含“保存”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。 在 Outlook 富客户端和 Outlook RT 中,如果在 、 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示用于新建日历约会的表单。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果你未将任何与会者指定为输入参数,该方法将显示为一个包含“保存”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。 在 Outlook 富客户端和 Outlook RT 中,如果在 、 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 注意:iOS 或 Android 版 Outlook 不支持此方法。 |
display |
显示用于创建新邮件的窗体。 方法 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 |
display |
显示用于创建新邮件的窗体。 方法 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 |
display |
显示用于创建新邮件的窗体。 方法 如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。 |
get |
获取一个字符串,该字符串包含用于调用 REST API 或 Exchange Web Services (EWS) 的令牌。
令牌在 属性中 |
get |
获取一个字符串,其中包含用于从 Exchange Server 获取附件或项目的令牌。
令牌在 属性中 |
get |
获取用于标识用户和 Office 外接程序的令牌。 令牌在 属性中 |
make |
在托管用户邮箱的 Exchange 服务器上向 Exchange Web Services 发出异步请求 (EWS) 服务。
|
remove |
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Mailbox 对象模型 事件部分。 |
remove |
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Mailbox 对象模型 事件部分。 |
属性详细信息
diagnostics
将诊断信息提供给 Outlook 外接程序。
包含以下成员。
hostName
(字符串) :表示 Office 应用程序名称的字符串。 它应为以下值之一:Outlook
、OutlookWebApp
、OutlookIOS
或 。OutlookAndroid
注意:桌面客户端上的 Outlook 将返回“Outlook”值, (即 Windows 和 Mac) 。hostVersion
(字符串) :表示 Office 应用程序或Exchange Server (版本的字符串,例如“15.0.468.0”) 。 如果邮件加载项在桌面或移动客户端上的 Outlook 中运行,则hostVersion
属性将返回应用程序版本 Outlook。 在 Outlook 网页版 中, 属性返回Exchange Server的版本。OWAView
MailboxEnums.OWAView
(或字符串) :表示Outlook 网页版当前视图的枚举 (或字符串文本) 。 如果未Outlook 网页版应用程序,则访问此属性会导致未定义。 Outlook 网页版有三种视图,OneColumn
(在屏幕较窄时显示;TwoColumns
当屏幕较宽ThreeColumns
时显示;当屏幕较宽时显示;当屏幕宽) (对应于屏幕和窗口的宽度)以及可显示的列数时显示。
有关详细信息,请参阅 Office.Diagnostics。
diagnostics: Diagnostics;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
从邮箱要求集 1.5 开始,还可以使用 Office.context.诊断 属性获取类似信息。
ewsUrl
获取此电子邮件帐户的 Exchange Web Services (EWS) 终点的 URL。
ewsUrl: string;
属性值
string
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
重要说明:
应用必须具有在其清单中指定的 读取项 权限,才能在读取模式下调用
ewsUrl
成员。在撰写模式下,必须先调用 方法,
saveAsync
然后才能使用ewsUrl
成员。 你的应用必须具有 读取/写入项 权限才能调用saveAsync
方法。Android 版或 iOS 版 Outlook 不支持此属性。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
远程服务可使用
ewsUrl
值对用户邮箱进行 EWS 调用。 例如,可以创建一个远程服务来 从所选项获取附件。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/ids-and-urls.yaml
console.log("EWS URL: " + Office.context.mailbox.ewsUrl);
const ewsId = Office.context.mailbox.item.itemId;
console.log("EWS item ID: " + Office.context.mailbox.item.itemId);
console.log("REST URL: " + Office.context.mailbox.restUrl);
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
console.log("REST item ID: " + restId);
const ewsId2 = Office.context.mailbox.convertToEwsId(restId, Office.MailboxEnums.RestVersion.v2_0);
console.log("EWS ID (from REST ID): " + ewsId2);
item
邮箱项。 根据打开加载项的上下文,项类型可能会有所不同。 如果只想查看特定类型或模式的 IntelliSense,请将此项转换为以下项之一:
MessageCompose、 MessageRead、 AppointmentCompose、 AppointmentRead
重要提示: item
如果加载项支持固定任务窗格,可以为 null。 有关如何处理的详细信息,请参阅 在 Outlook 中实现可固定的任务窗格。
item?: Item & ItemCompose & ItemRead & Message & MessageCompose & MessageRead & Appointment & AppointmentCompose & AppointmentRead;
属性值
masterCategories
获取一个 对象,该对象提供用于管理与邮箱关联的类别主列表的方法。
masterCategories: MasterCategories;
属性值
注解
最低权限级别: 读/写邮箱
适用的 Outlook 模式:撰写或阅读
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/45-categories/work-with-master-categories.yaml
Office.context.mailbox.masterCategories.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const categories = asyncResult.value;
if (categories && categories.length > 0) {
console.log("Master categories:");
console.log(JSON.stringify(categories));
} else {
console.log("There are no categories in the master list.");
}
} else {
console.error(asyncResult.error);
}
});
...
const masterCategoriesToAdd = [
{
displayName: "TestCategory",
color: Office.MailboxEnums.CategoryColor.Preset0
}
];
Office.context.mailbox.masterCategories.addAsync(masterCategoriesToAdd, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Successfully added categories to master list");
} else {
console.log("masterCategories.addAsync call failed with error: " + asyncResult.error.message);
}
});
...
const masterCategoriesToRemove = ["TestCategory"];
Office.context.mailbox.masterCategories.removeAsync(masterCategoriesToRemove, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Successfully removed categories from master list");
} else {
console.log("masterCategories.removeAsync call failed with error: " + asyncResult.error.message);
}
});
restUrl
获取此电子邮件帐户的 REST 终结点的 URL。
应用必须具有在其清单中指定的 读取项 权限,才能在读取模式下调用 restUrl
成员。
在撰写模式中,必须调用 saveAsync
方法,才能使用 restUrl
成员。 你的应用必须具有 读取/写入项 权限才能调用 saveAsync
方法。
但是,在委托或共享方案中,应改用 targetRestUrl
要求集 1.8) 中引入 (SharedProperties 对象的 属性。 有关详细信息,请参阅 委托访问 一文。
restUrl: string;
属性值
string
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
restUrl
值可用于对用户邮箱进行 REST API 调用。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/basic-rest-cors.yaml
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
const ewsId = Office.context.mailbox.item.itemId;
const token = result.value;
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
const getMessageUrl = Office.context.mailbox.restUrl + '/v2.0/me/messages/' + restId;
const xhr = new XMLHttpRequest();
xhr.open('GET', getMessageUrl);
xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.onload = function (e) {
console.log(this.response);
}
xhr.send();
});
...
console.log("EWS URL: " + Office.context.mailbox.ewsUrl);
const ewsId = Office.context.mailbox.item.itemId;
console.log("EWS item ID: " + Office.context.mailbox.item.itemId);
console.log("REST URL: " + Office.context.mailbox.restUrl);
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
console.log("REST item ID: " + restId);
const ewsId2 = Office.context.mailbox.convertToEwsId(restId, Office.MailboxEnums.RestVersion.v2_0);
console.log("EWS ID (from REST ID): " + ewsId2);
userProfile
方法详细信息
addHandlerAsync(eventType, handler, options, callback)
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Mailbox 对象模型 事件部分。
addHandlerAsync(eventType: Office.EventType | string, handler: any, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应调用处理程序的事件。
- handler
-
any
用于处理事件的函数。 此函数必须接受一个参数,即对象文本。 参数type
上的 属性将与传递给 addHandlerAsync
的参数匹配eventType
。
- options
- Office.AsyncContextOptions
提供一个选项,用于保留任何类型的上下文数据(不变),以便在回调中使用。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
示例
Office.initialize = function (reason) {
$(document).ready(function () {
Office.context.mailbox.addHandlerAsync(
Office.EventType.ItemChanged,
loadNewItem,
function (result) {
if (result.status === Office.AsyncResultStatus.Failed) {
// Handle error.
}
});
});
};
function loadNewItem(eventArgs) {
const item = Office.context.mailbox.item;
// Check that item is not null.
if (item !== null) {
// Work with item, e.g., define and call function that
// loads the properties of the newly selected item.
loadProps(item);
}
}
addHandlerAsync(eventType, handler, callback)
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Mailbox 对象模型 事件部分。
addHandlerAsync(eventType: Office.EventType | string, handler: any, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应调用处理程序的事件。
- handler
-
any
用于处理事件的函数。 此函数必须接受一个参数,即对象文本。 参数type
上的 属性将与传递给 addHandlerAsync
的参数匹配eventType
。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
convertToEwsId(itemId, restVersion)
将项目 ID 格式化(从 REST 转换为 EWS 格式)。
通过 REST API 检索的项 Id(如 Outlook 邮件 API 或 Microsoft Graph)使用与 Exchange Web 服务 (EWS) 所使用格式不同的格式。 方法将 REST 格式化的 ID 转换为正确的 EWS 格式。
convertToEwsId(itemId: string, restVersion: MailboxEnums.RestVersion | string): string;
参数
- itemId
-
string
为 Outlook REST API 设置格式的项目 ID。
- restVersion
-
Office.MailboxEnums.RestVersion | string
指示用于检索项目 ID 的 Outlook REST API 的版本。
返回
string
注解
[ API 集:邮箱 1.3 ]
最低权限级别: 受限
适用的 Outlook 模式:撰写或阅读
重要提示:Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/ids-and-urls.yaml
console.log("EWS URL: " + Office.context.mailbox.ewsUrl);
const ewsId = Office.context.mailbox.item.itemId;
console.log("EWS item ID: " + Office.context.mailbox.item.itemId);
console.log("REST URL: " + Office.context.mailbox.restUrl);
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
console.log("REST item ID: " + restId);
const ewsId2 = Office.context.mailbox.convertToEwsId(restId, Office.MailboxEnums.RestVersion.v2_0);
console.log("EWS ID (from REST ID): " + ewsId2);
convertToLocalClientTime(timeValue)
获取包含以本地客户端时间表示的时间信息的字典。
邮件应用用于Outlook 网页版或桌面客户端的日期和时间可以使用不同的时区。 Outlook 使用客户端计算机时区;Outlook 网页版使用 Exchange 管理员 中心 (EAC) 设置的时区。 应对日期和时间值进行处理,以便用户界面上显示的值始终与用户预期的时区一致。
如果邮件应用在桌面客户端上的 Outlook 中运行,该方法 convertToLocalClientTime
将返回一个字典对象,其值设置为客户端计算机时区。 如果邮件应用在 Outlook 网页版 中运行,该方法convertToLocalClientTime
将返回一个字典对象,其值设置为 EAC 中指定的时区。
convertToLocalClientTime(timeValue: Date): LocalClientTime;
参数
- timeValue
-
Date
Date
对象。
返回
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
convertToRestId(itemId, restVersion)
将项目 ID 格式化(从 EWS 转换为 REST 格式)。
convertToRestId(itemId: string, restVersion: MailboxEnums.RestVersion | string): string;
参数
- itemId
-
string
适用于 Exchange Web 服务 (EWS) 的项目 ID 格式化。
- restVersion
-
Office.MailboxEnums.RestVersion | string
值指示转换的 ID 所使用的 Outlook REST API 的版本。
返回
string
注解
[ API 集:邮箱 1.3 ]
最低权限级别: 受限
适用的 Outlook 模式:撰写或阅读
重要说明:
Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
通过 EWS 或
itemId
属性检索的项目 ID 使用的格式与 REST API ((如 Outlook 邮件 API 或 Microsoft Graph)使用的格式不同。 方法将 EWS 格式化的 ID 转换为正确的 REST 格式。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/basic-rest-cors.yaml
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
const ewsId = Office.context.mailbox.item.itemId;
const token = result.value;
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
const getMessageUrl = Office.context.mailbox.restUrl + '/v2.0/me/messages/' + restId;
const xhr = new XMLHttpRequest();
xhr.open('GET', getMessageUrl);
xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.onload = function (e) {
console.log(this.response);
}
xhr.send();
});
...
console.log("EWS URL: " + Office.context.mailbox.ewsUrl);
const ewsId = Office.context.mailbox.item.itemId;
console.log("EWS item ID: " + Office.context.mailbox.item.itemId);
console.log("REST URL: " + Office.context.mailbox.restUrl);
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
console.log("REST item ID: " + restId);
const ewsId2 = Office.context.mailbox.convertToEwsId(restId, Office.MailboxEnums.RestVersion.v2_0);
console.log("EWS ID (from REST ID): " + ewsId2);
convertToUtcClientTime(input)
Date
从包含时间信息的字典中获取对象。
方法 convertToUtcClientTime
将包含本地日期和时间 Date
的字典转换为具有本地日期和时间的正确值的对象。
convertToUtcClientTime(input: LocalClientTime): Date;
参数
- input
- Office.LocalClientTime
要转换的本地时间值。
返回
Date
包含以 UTC 表示的时间的 Date 对象。
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
示例
// Represents 3:37 PM PDT on Monday, August 26, 2019.
const input = {
date: 26,
hours: 15,
milliseconds: 2,
minutes: 37,
month: 7,
seconds: 2,
timezoneOffset: -420,
year: 2019
};
// result should be a Date object.
const result = Office.context.mailbox.convertToUtcClientTime(input);
// Output should be "2019-08-26T22:37:02.002Z".
console.log(result.toISOString());
displayAppointmentForm(itemId)
显示现有日历约会。
方法 displayAppointmentForm
在桌面上的新窗口中打开现有的日历约会。
在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。
displayAppointmentForm(itemId: string): void;
参数
- itemId
-
string
现有日历约会的 Exchange Web 服务 (EWS) 标识符。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
重要提示:Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-appointment.yaml
const itemId = $("#itemId").val();
Office.context.mailbox.displayAppointmentForm(itemId);
displayAppointmentFormAsync(itemId, options, callback)
显示现有日历约会。
displayAppointmentFormAsync
方法将打开桌面新窗口中或移动设备对话框中的现有日历约会。
在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayAppointmentFormAsync(itemId: string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- itemId
-
string
现有日历约会的 Exchange Web 服务 (EWS) 标识符。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-appointment.yaml
const itemId = $("#itemId").val();
// The async version will return error 9049 if the item is not found.
// The async version is only available starting with requirement set 1.9.
Office.context.mailbox.displayAppointmentFormAsync(itemId, function(asyncResult) {
console.log("Result: " + JSON.stringify(asyncResult));
});
displayAppointmentFormAsync(itemId, callback)
显示现有日历约会。
displayAppointmentFormAsync
方法将打开桌面新窗口中或移动设备对话框中的现有日历约会。
在 Outlook on Mac 中,可以使用此方法显示不属于定期系列的单个约会,或显示定期系列的主约会。 但是,无法显示序列的实例,因为无法访问属性 (包括定期序列实例的项 ID) 。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项目标识符未标识现有约会,则会在客户端计算机或设备上打开一个空白窗格,并且不会返回错误消息。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayAppointmentFormAsync(itemId: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- itemId
-
string
现有日历约会的 Exchange Web 服务 (EWS) 标识符。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
displayMessageForm(itemId)
显示现有邮件。
方法 displayMessageForm
在桌面上的新窗口中打开现有消息。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。
displayMessageForm(itemId: string): void;
参数
- itemId
-
string
现有消息的 Exchange Web 服务 (EWS) 标识符。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
重要说明:
Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
不要将
displayMessageForm
与表示约会的 itemId 一起使用。 使用displayAppointmentForm
方法显示现有的约会,并使用displayNewAppointmentForm
显示窗体以新建约会。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-message.yaml
const itemId = $("#itemId").val();
Office.context.mailbox.displayMessageForm(itemId);
displayMessageFormAsync(itemId, options, callback)
显示现有邮件。
displayMessageFormAsync
方法将打开桌面新窗口中或移动设备对话框中的现有邮件。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。
不要将 displayMessageForm
或 displayMessageFormAsync
方法与表示约会的 itemId 一起使用。 displayAppointmentForm
使用 或 displayAppointmentFormAsync
方法可显示现有约会,或 displayNewAppointmentForm
displayNewAppointmentFormAsync
显示窗体以创建新约会。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayMessageFormAsync(itemId: string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- itemId
-
string
现有消息的 Exchange Web 服务 (EWS) 标识符。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-message.yaml
const itemId = $("#itemId").val();
// The async version will return error 9049 if the item is not found.
// The async version is only available starting with requirement set 1.9.
Office.context.mailbox.displayMessageFormAsync(itemId, function (asyncResult) {
console.log("Result: " + JSON.stringify(asyncResult));
});
displayMessageFormAsync(itemId, callback)
显示现有邮件。
displayMessageFormAsync
方法将打开桌面新窗口中或移动设备对话框中的现有邮件。
在 Outlook 网页版中,仅当窗体的正文小于或等于 32K 个字符时,此方法才会打开指定的窗体。
如果指定的项标识符未标识现有消息,则客户端计算机上不会显示任何消息,并且不会返回错误消息。
不要将 displayMessageForm
或 displayMessageFormAsync
方法与表示约会的 itemId 一起使用。 displayAppointmentForm
使用 或 displayAppointmentFormAsync
方法可显示现有约会,或 displayNewAppointmentForm
displayNewAppointmentFormAsync
显示窗体以创建新约会。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayMessageFormAsync(itemId: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- itemId
-
string
现有消息的 Exchange Web 服务 (EWS) 标识符。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
displayNewAppointmentForm(parameters)
显示用于新建日历约会的表单。
displayNewAppointmentForm
方法打开可让用户新建约会或会议的窗体。 如果指定了参数,将使用参数的内容自动填充约会窗体字段。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果未将任何与会者指定为输入参数,该方法将显示带有 “保存 ”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。
在 Outlook 富客户端和 Outlook RT 中,如果在 、optionalAttendees
或 参数中requiredAttendees
指定了任何与会者或resources
资源,此方法将显示带有“发送”按钮的会议窗体。 如果未指定任何收件人,此方法将显示包含 “保存 & 关闭 ”按钮的约会表单。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
displayNewAppointmentForm(parameters: AppointmentForm): void;
参数
- parameters
- Office.AppointmentForm
描述 AppointmentForm
新约会的 。 所有属性都是可选的。
返回
void
注解
最低权限级别: 读取项
重要提示:Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-new-appointment.yaml
const start = new Date();
const end = new Date();
end.setHours(start.getHours() + 1);
Office.context.mailbox.displayNewAppointmentForm({
requiredAttendees: ["bob@contoso.com"],
optionalAttendees: ["sam@contoso.com"],
start: start,
end: end,
location: "Home",
subject: "meeting",
resources: ["projector@contoso.com"],
body: "Hello World!"
});
displayNewAppointmentFormAsync(parameters, options, callback)
显示用于新建日历约会的表单。
displayNewAppointmentFormAsync
方法打开可让用户新建约会或会议的窗体。 如果指定了参数,将使用参数的内容自动填充约会窗体字段。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果你未将任何与会者指定为输入参数,该方法将显示为一个包含“保存”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。
在 Outlook 富客户端和 Outlook RT 中,如果在 、optionalAttendees
或 参数中requiredAttendees
指定了任何与会者或resources
资源,此方法将显示带有“发送”按钮的会议窗体。 如果未指定任何收件人,此方法将显示包含 “保存 & 关闭 ”按钮的约会表单。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayNewAppointmentFormAsync(parameters: AppointmentForm, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- parameters
- Office.AppointmentForm
描述 AppointmentForm
新约会的 。 所有属性都是可选的。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-new-appointment.yaml
const start = new Date();
const end = new Date();
end.setHours(start.getHours() + 1);
// The async version is only available starting with requirement set 1.9,
// and provides a callback when the new appointment form has been created.
Office.context.mailbox.displayNewAppointmentFormAsync(
{
requiredAttendees: ["bob@contoso.com"],
optionalAttendees: ["sam@contoso.com"],
start: start,
end: end,
location: "Home",
subject: "meeting",
resources: ["projector@contoso.com"],
body: "Hello World!"
},
function(asyncResult) {
console.log(JSON.stringify(asyncResult));
}
);
displayNewAppointmentFormAsync(parameters, callback)
显示用于新建日历约会的表单。
displayNewAppointmentFormAsync
方法打开可让用户新建约会或会议的窗体。 如果指定了参数,将使用参数的内容自动填充约会窗体字段。
在 Outlook 网页版 中,此方法始终显示包含与会者字段的窗体。 如果你未将任何与会者指定为输入参数,该方法将显示为一个包含“保存”按钮的窗体。 如果已指定与会者,窗体将包含与会者和“发送”按钮。
在 Outlook 富客户端和 Outlook RT 中,如果在 、optionalAttendees
或 参数中requiredAttendees
指定了任何与会者或resources
资源,此方法将显示带有“发送”按钮的会议窗体。 如果未指定任何收件人,此方法将显示包含 “保存 & 关闭 ”按钮的约会表单。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
注意:iOS 或 Android 版 Outlook 不支持此方法。
displayNewAppointmentFormAsync(parameters: AppointmentForm, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- parameters
- Office.AppointmentForm
描述 AppointmentForm
新约会的 。 所有属性都是可选的。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
displayNewMessageForm(parameters)
显示用于创建新邮件的窗体。
方法 displayNewMessageForm
将打开一个窗体,使用户能够创建新邮件。 如果指定了参数,则消息窗体字段将自动填充参数的内容。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
displayNewMessageForm(parameters: any): void;
参数
- parameters
-
any
包含新窗体中用户要填写的所有值的字典。 所有参数都是可选的。
toRecipients
:包含电子邮件地址的字符串数组,或包含“收件人”行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
ccRecipients
:包含电子邮件地址的字符串数组,或包含抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
bccRecipients
:包含电子邮件地址的字符串数组,或包含密件抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
subject
:包含消息主题的字符串。 字符串长度限制为最多 255 个字符。
htmlBody
:邮件的 HTML 正文。 正文内容限制为最大 32 KB。
attachments
:作为文件或项目附件的 JSON 对象的数组。
attachments.type
:指示附件的类型。 必须是文件附件的文件或项目附件的项。
attachments.name
:包含附件名称的字符串,长度最多为 255 个字符。
attachments.url
:仅在 type 设置为 file 时才使用。 文件的位置的 URI。 重要提示:此链接必须可公开访问,而无需Exchange Online服务器进行身份验证。 但是,使用本地 Exchange 时,只要不需要进一步身份验证,就可以在专用网络上访问链接。
attachments.isInline
:仅在 type 设置为 file 时才使用。 如果为 true,则表示附件将在邮件正文中内联显示,不应显示在附件列表中。
attachments.itemId
:仅在 type 设置为 item 时才使用。 要附加到新邮件的现有电子邮件的 EWS 项 ID。 字符串最长为 100 个字符。
返回
void
注解
最低权限级别: 读取项
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-new-message.yaml
Office.context.mailbox.displayNewMessageForm({
toRecipients: Office.context.mailbox.item.to, // Copies the To line from current item
ccRecipients: ["sam@contoso.com"],
subject: "Outlook add-ins are cool!",
htmlBody: 'Hello <b>World</b>!<br/><img src="cid:image.png"></i>',
attachments: [
{
type: "file",
name: "image.png",
url: "http://www.cutestpaw.com/wp-content/uploads/2011/11/Cute-Black-Dogs-s.jpg",
isInline: true
}
]
});
displayNewMessageFormAsync(parameters, options, callback)
显示用于创建新邮件的窗体。
方法 displayNewMessageFormAsync
将打开一个窗体,使用户能够创建新邮件。 如果指定了参数,则消息窗体字段将自动填充参数的内容。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
displayNewMessageFormAsync(parameters: any, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- parameters
-
any
包含新窗体中用户要填写的所有值的字典。 所有参数都是可选的。
toRecipients
:包含电子邮件地址的字符串数组,或包含“收件人”行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
ccRecipients
:包含电子邮件地址的字符串数组,或包含抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
bccRecipients
:包含电子邮件地址的字符串数组,或包含密件抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
subject
:包含消息主题的字符串。 字符串长度限制为最多 255 个字符。
htmlBody
:邮件的 HTML 正文。 正文内容限制为最大 32 KB。
attachments
:作为文件或项目附件的 JSON 对象的数组。
attachments.type
:指示附件的类型。 必须是文件附件的文件或项目附件的项。
attachments.name
:包含附件名称的字符串,长度最多为 255 个字符。
attachments.url
:仅在 type 设置为 file 时才使用。 文件的位置的 URI。 重要提示:此链接必须可公开访问,而无需Exchange Online服务器进行身份验证。 但是,使用本地 Exchange 时,只要不需要进一步身份验证,就可以在专用网络上访问链接。
attachments.isInline
:仅在 type 设置为 file 时才使用。 如果为 true,则表示附件将在邮件正文中内联显示,不应显示在附件列表中。
attachments.itemId
:仅在 type 设置为 item 时才使用。 要附加到新邮件的现有电子邮件的 EWS 项 ID。 字符串最长为 100 个字符。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-new-message.yaml
// The async version is only available starting with requirement set 1.9,
// and provides a callback when the new message form has been created.
Office.context.mailbox.displayNewMessageFormAsync(
{
toRecipients: Office.context.mailbox.item.to, // Copies the To line from current item
ccRecipients: ["sam@contoso.com"],
subject: "Outlook add-ins are cool!",
htmlBody: 'Hello <b>World</b>!<br/><img src="cid:image.png"></i>',
attachments: [
{
type: "file",
name: "image.png",
url: "http://www.cutestpaw.com/wp-content/uploads/2011/11/Cute-Black-Dogs-s.jpg",
isInline: true
}
]
},
function(asyncResult) {
console.log(JSON.stringify(asyncResult));
}
);
displayNewMessageFormAsync(parameters, callback)
显示用于创建新邮件的窗体。
方法 displayNewMessageFormAsync
将打开一个窗体,使用户能够创建新邮件。 如果指定了参数,则消息窗体字段将自动填充参数的内容。
如果任何参数超过指定大小限制,或者指定了未知参数名称,则会引发异常。
displayNewMessageFormAsync(parameters: any, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- parameters
-
any
包含新窗体中用户要填写的所有值的字典。 所有参数都是可选的。
toRecipients
:包含电子邮件地址的字符串数组,或包含“收件人”行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
ccRecipients
:包含电子邮件地址的字符串数组,或包含抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
bccRecipients
:包含电子邮件地址的字符串数组,或包含密件抄送行上每个收件人的 EmailAddressDetails 对象的数组。 数组限制为最多 100 个条目。
subject
:包含消息主题的字符串。 字符串长度限制为最多 255 个字符。
htmlBody
:邮件的 HTML 正文。 正文内容限制为最大 32 KB。
attachments
:作为文件或项目附件的 JSON 对象的数组。
attachments.type
:指示附件的类型。 必须是文件附件的文件或项目附件的项。
attachments.name
:包含附件名称的字符串,长度最多为 255 个字符。
attachments.url
:仅在 type 设置为 file 时才使用。 文件的位置的 URI。 重要提示:此链接必须可公开访问,而无需Exchange Online服务器进行身份验证。 但是,使用本地 Exchange 时,只要不需要进一步身份验证,就可以在专用网络上访问链接。
attachments.isInline
:仅在 type 设置为 file 时才使用。 如果为 true,则表示附件将在邮件正文中内联显示,不应显示在附件列表中。
attachments.itemId
:仅在 type 设置为 item 时才使用。 要附加到新邮件的现有电子邮件的 EWS 项 ID。 字符串最长为 100 个字符。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
getCallbackTokenAsync(options, callback)
获取一个字符串,该字符串包含用于调用 REST API 或 Exchange Web Services (EWS) 的令牌。
getCallbackTokenAsync
方法进行异步调用,从托管用户邮箱的 Exchange Server 获取非跳转令牌。 回调令牌的生存期为 5 分钟。
令牌在 属性中 asyncResult.value
以字符串的形式返回。
getCallbackTokenAsync(options: Office.AsyncContextOptions & { isRest?: boolean }, callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- options
-
Office.AsyncContextOptions & { isRest?: boolean }
包含以下一个或多个属性的对象文本:- isRest
:确定提供的令牌是否将用于 Outlook REST API 或 Exchange Web Services。 默认值为 false
。 asyncContext
:传递给异步方法的任何状态数据。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 令牌在 属性中 asyncResult.value
以字符串的形式返回。 如果出现错误,则 asyncResult.error
和 asyncResult.diagnostics
属性可能会提供其他信息。
返回
void
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
REST 令牌
当 () options.isRest
= true
请求 REST 令牌时,生成的令牌将无法对 EWS 调用进行身份验证。 除非加载项在其清单中指定了 读/写邮箱 权限,否则令牌的范围将限制为对当前项目及其附件的只读访问权限。 如果指定 了读/写邮箱 权限,则生成的令牌将授予对邮件、日历和联系人的读/写访问权限,包括发送邮件的能力。
在进行 REST API 调用时,外接程序应使用 restUrl
属性来确定要使用的正确 URL。
此 API 适用于以下范围。
Mail.ReadWrite
Mail.Send
Calendars.ReadWrite
Contacts.ReadWrite
EWS 令牌
当 () options.isRest
= false
请求 EWS 令牌时,生成的令牌将无法对 REST API 调用进行身份验证。 令牌的作用域限制为访问当前项。
外接程序应使用 ewsUrl
属性来确定进行 EWS 调用时要使用的正确 URL。
可以将令牌和附件标识符或项标识符传递给外部系统。 该系统使用该令牌作为持有者授权令牌来调用 Exchange Web Services (EWS) GetAttachment 操作或 GetItem 操作以返回附件或项目。 例如,可以创建一个远程服务来 从所选项获取附件。
重要说明:
此方法仅在 Outlook on Android 和 iOS 的读取模式下受支持。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
在 iOS 和 Android 上的 Outlook 中运行的加载项中不支持 EWS 操作。 即使
options.isRest
设置为false
,也会始终在 Outlook 移动客户端中返回 REST 令牌。getCallbackTokenAsync
在读取模式下调用 方法需要读取项的最低权限级别。getCallbackTokenAsync
在撰写模式下调用 方法需要保存项目。 方法saveAsync
需要 读/写项的最低权限级别。有关委托或共享方案的指导,请参阅 共享文件夹和共享邮箱 一文。
错误:
HTTPRequestFailure
:请求失败。 请查看诊断对象,了解 HTTP 错误代码。InternalServerError
:Exchange 服务器返回错误。 请查看诊断对象,了解详细信息。NetworkError
:用户不再连接到网络。 请检查网络连接并重试。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/basic-rest-cors.yaml
Office.context.mailbox.getCallbackTokenAsync({ isRest: true }, function (result) {
const ewsId = Office.context.mailbox.item.itemId;
const token = result.value;
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
const getMessageUrl = Office.context.mailbox.restUrl + '/v2.0/me/messages/' + restId;
const xhr = new XMLHttpRequest();
xhr.open('GET', getMessageUrl);
xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.onload = function (e) {
console.log(this.response);
}
xhr.send();
});
getCallbackTokenAsync(callback, userContext)
获取一个字符串,其中包含用于从 Exchange Server 获取附件或项目的令牌。
getCallbackTokenAsync
方法进行异步调用,从托管用户邮箱的 Exchange Server 获取非跳转令牌。 回调令牌的生存期为 5 分钟。
令牌在 属性中 asyncResult.value
以字符串的形式返回。
getCallbackTokenAsync(callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 令牌在 属性中 asyncResult.value
以字符串的形式返回。 如果出现错误,则 asyncResult.error
和 asyncResult.diagnostics
属性可能会提供其他信息。
- userContext
-
any
可选。 传递给异步方法的任何状态数据。
返回
void
注解
[ API 集:全部支持读取模式;邮箱 1.3 引入了撰写模式支持 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
重要说明:
可以将令牌和附件标识符或项标识符传递给外部系统。 该系统使用该令牌作为持有者授权令牌来调用 Exchange Web Services (EWS) GetAttachment 或 GetItem 操作以返回附件或项目。 例如,可以创建一个远程服务来 从所选项获取附件。
getCallbackTokenAsync
在读取模式下调用 方法需要读取项的最低权限级别。getCallbackTokenAsync
在撰写模式下调用 方法需要保存项目。 方法saveAsync
需要 读/写项的最低权限级别。Android 版或 iOS 版 Outlook 不支持此方法。 在 Outlook 移动客户端上运行的外接程序中不支持 EWS 操作。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
有关委托或共享方案的指导,请参阅 共享文件夹和共享邮箱 一文。
错误:
HTTPRequestFailure
:请求失败。 请查看诊断对象,了解 HTTP 错误代码。InternalServerError
:Exchange 服务器返回错误。 请查看诊断对象,了解详细信息。NetworkError
:用户不再连接到网络。 请检查网络连接并重试。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/user-callback-token.yaml
Office.context.mailbox.getCallbackTokenAsync(function (result) {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Token retrieval failed with message: ${result.error.message}`);
} else {
console.log(result.value);
}
});
getUserIdentityTokenAsync(callback, userContext)
获取用于标识用户和 Office 外接程序的令牌。
令牌在 属性中 asyncResult.value
以字符串的形式返回。
getUserIdentityTokenAsync(callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 令牌在 属性中 asyncResult.value
以字符串的形式返回。 如果出现错误,则 asyncResult.error
和 asyncResult.diagnostics
属性可能会提供其他信息。
- userContext
-
any
可选。 传递给异步方法的任何状态数据。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
方法getUserIdentityTokenAsync
返回一个令牌,可用于使用外部系统标识加载项和用户并对其进行身份验证。
错误:
HTTPRequestFailure
:请求失败。 请查看诊断对象,了解 HTTP 错误代码。InternalServerError
:Exchange 服务器返回错误。 请查看诊断对象,了解详细信息。NetworkError
:用户不再连接到网络。 请检查网络连接并重试。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/user-identity-token.yaml
Office.context.mailbox.getUserIdentityTokenAsync(function (result) {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Token retrieval failed with message: ${result.error.message}`);
} else {
console.log(result.value);
}
});
makeEwsRequestAsync(data, callback, userContext)
在托管用户邮箱的 Exchange 服务器上向 Exchange Web Services 发出异步请求 (EWS) 服务。
makeEwsRequestAsync
方法代表加载项将 EWS 请求发送到 Exchange。
makeEwsRequestAsync(data: any, callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
参数
- data
-
any
EWS 请求。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 value
结果的 属性是作为字符串提供的 EWS 请求的 XML。 如果结果的大小超过 1 MB,则会在 属性中 error
返回错误消息。
- userContext
-
any
可选。 传递给异步方法的任何状态数据。
返回
void
注解
最低权限级别: 读/写邮箱
适用的 Outlook 模式:撰写或阅读
重要说明:
若要使 方法能够
makeEwsRequestAsync
发出 EWS 请求,服务器管理员必须在客户端访问服务器 EWS 目录上设置为OAuthAuthentication
true
。外接程序必须具有 读/写邮箱 权限才能使用
makeEwsRequestAsync
方法。 有关使用 读/写邮箱 权限以及可以使用 方法调用makeEwsRequestAsync
的 EWS 操作的信息,请参阅 指定邮件加载项对用户邮箱的访问权限。如果你的外接程序需要访问文件夹关联项目或其 XML 请求必须指定 UTF-8 编码 (
\<?xml version="1.0" encoding="utf-8"?\>
) ,它必须使用 Microsoft Graph 或 REST API 来访问用户的邮箱。Android 版或 iOS 版 Outlook 不支持此方法。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API。
在 Gmail 邮箱中加载加载项时,不支持此方法。
在
makeEwsRequestAsync
版本 15.0.4535.1004 之前的 Outlook 版本中运行的外接程序中使用 方法时,必须将编码值设置为 ISO-8859-1 (<?xml version="1.0" encoding="iso-8859-1"?>
) 。 若要确定 Outlook 客户端的版本,请使用mailbox.diagnostics.hostVersion
属性。 当加载项在 Outlook 网页版 中运行时,无需设置编码值。 若要确定运行加载项的 Outlook 客户端,请使用mailbox.diagnostics.hostName
属性。
示例
function getSubjectRequest(id) {
// Return a GetItem operation request for the subject of the specified item.
const request =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
' <soap:Header>' +
' <RequestServerVersion Version="Exchange2016" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" soap:mustUnderstand="0" />' +
' </soap:Header>' +
' <soap:Body>' +
' <GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">' +
' <ItemShape>' +
' <t:BaseShape>IdOnly</t:BaseShape>' +
' <t:AdditionalProperties>' +
' <t:FieldURI FieldURI="item:Subject"/>' +
' </t:AdditionalProperties>' +
' </ItemShape>' +
' <ItemIds><t:ItemId Id="' + id + '"/></ItemIds>' +
' </GetItem>' +
' </soap:Body>' +
'</soap:Envelope>';
return request;
}
function sendRequest() {
// Create a local variable that contains the mailbox.
Office.context.mailbox.makeEwsRequestAsync(
getSubjectRequest(mailbox.item.itemId), callback);
}
function callback(asyncResult) {
const result = asyncResult.value;
const context = asyncResult.asyncContext;
// Process the returned response here.
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/get-icaluid-as-attendee.yaml
const ewsId = Office.context.mailbox.item.itemId;
const request = `<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><t:RequestServerVersion Version="Exchange2013" /></soap:Header>
<soap:Body>
<m:GetItem>
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape >
<m:ItemIds>
<t:ItemId Id="${ewsId}" />
</m:ItemIds>
</m:GetItem>
</soap:Body>
</soap:Envelope>`;
Office.context.mailbox.makeEwsRequestAsync(request, (result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(result.error.message);
return;
}
console.log(getUID(result.value));
});
...
const request = '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
' <soap:Header><t:RequestServerVersion Version="Exchange2010" /></soap:Header>'+
' <soap:Body>'+
' <m:CreateItem MessageDisposition="SendAndSaveCopy">'+
' <m:SavedItemFolderId><t:DistinguishedFolderId Id="sentitems" /></m:SavedItemFolderId>'+
' <m:Items>'+
' <t:Message>'+
' <t:Subject>Hello, Outlook!</t:Subject>'+
' <t:Body BodyType="HTML">This message was sent from a ScriptLab code sample, used from ' + Office.context.mailbox.diagnostics.hostName + ', version ' + Office.context.mailbox.diagnostics.hostVersion + '!</t:Body>'+
' <t:ToRecipients>'+
' <t:Mailbox><t:EmailAddress>' + Office.context.mailbox.userProfile.emailAddress + '</t:EmailAddress></t:Mailbox>'+
' </t:ToRecipients>'+
' </t:Message>'+
' </m:Items>'+
' </m:CreateItem>'+
' </soap:Body>'+
'</soap:Envelope>';
Office.context.mailbox.makeEwsRequestAsync(request, function (result) {
console.log(result);
});
removeHandlerAsync(eventType, options, callback)
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Mailbox 对象模型 事件部分。
removeHandlerAsync(eventType: Office.EventType | string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应撤销处理程序的事件。
- options
- Office.AsyncContextOptions
提供一个选项,用于保留任何类型的上下文数据(不变),以便在回调中使用。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
removeHandlerAsync(eventType, callback)
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Mailbox 对象模型 事件部分。
removeHandlerAsync(eventType: Office.EventType | string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应撤销处理程序的事件。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
[ API 集:邮箱 1.5 ]
最低权限级别: 读取项
适用的 Outlook 模式:撰写或阅读
反馈
提交和查看相关反馈