Office.AppointmentCompose interface
Office.context.mailbox.item 的约会组织者模式。
重要说明:这是一个内部 Outlook 对象,不会通过现有接口直接公开。 应将其视为 的 Office.context.mailbox.item
模式。 有关详细信息,请参阅 “对象模型 ”页。
父接口:
- 扩展
属性
body | 获取一个提供用于处理项目正文的方法的对象。 |
categories | 获取一个 对象,该对象提供用于管理项类别的方法。 |
end | 获取或设置约会结束的日期和时间。 属性 使用 重要提示:在 Windows 客户端中,不能使用此属性来更新重复周期的结束。 |
enhanced |
获取或设置约会的位置。 属性 |
item |
获取实例表示的项的类型。
|
location | 获取或设置约会的位置。 属性 |
notification |
获取项目的通知邮件。 |
optional |
提供对事件的可选与会者的访问权限。 对象的类型和访问级别取决于当前项的模式。
|
organizer | 获取指定会议的组织者。 属性 |
recurrence | 获取或设置约会的重复模式。 如果项目是系列或系列中的实例,则
注意:会议请求 注意:如果定期对象为 null,则表示该对象是单个约会或单个约会的会议请求,而不是序列的一部分。 |
required |
提供对事件的必需与会者的访问权限。 对象的类型和访问级别取决于当前项的模式。
|
series |
获取实例所属的序列的 ID。 在 Outlook 网页版 中,在 Windows (new 和 classic) 上,在 Mac 上,
注意:属性返回的 对于没有父项(如单个约会、系列项目或会议请求)的项目,属性 |
session |
在Compose模式下管理项的 SessionData。 重要提示:每个外接程序的整个 SessionData 对象限制为 50,000 个字符。 |
start | 获取或设置约会开始的日期和时间。 属性 使用 重要提示:在 Windows 客户端中,不能使用此属性来更新重复周期的开始时间。 |
subject | 获取或设置显示在项目的主题字段中的说明。
|
方法
add |
将文件作为附件添加到邮件或约会。
|
add |
将文件作为附件添加到邮件或约会。
|
add |
将文件作为附件添加到邮件或约会。 方法 随后可以将该标识符与
注意:如果使用数据 URL API (例如 |
add |
将文件作为附件添加到邮件或约会。 方法 随后可以将该标识符与
注意:如果使用数据 URL API (例如 |
add |
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Item 对象模型 事件部分。 |
add |
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Item 对象模型 事件部分。 |
add |
将 Exchange 项目(如邮件)作为附件添加到邮件或约会。
随后可以将该标识符与 如果你的 Office 加载项在 Outlook 网页版 和新的 Outlook on Windows 中运行,则 |
add |
将 Exchange 项目(如邮件)作为附件添加到邮件或约会。
随后可以将该标识符与 如果你的 Office 加载项在 Outlook 网页版 和新的 Outlook on Windows 中运行,则 |
close() | 关闭当前正在撰写的项目。
在 Outlook on Windows (经典) 和 Mac 中, |
disable |
禁用 Outlook 客户端签名。 在 Outlook on Windows (经典) 和 Mac 中,此 API 将发送帐户的“新邮件”和“答复/转发”部分下的签名设置为“ (无) ”,从而有效地禁用签名。 在 Outlook 网页版 和新 Outlook on Windows 中,API 禁用新邮件、答复和转发的签名选项。 如果选择了签名,则此 API 调用将禁用它。 |
disable |
禁用 Outlook 客户端签名。 在 Outlook on Windows (经典) 和 Mac 中,此 API 将发送帐户的“新邮件”和“答复/转发”部分下的签名设置为“ (无) ”,从而有效地禁用签名。 在 Outlook 网页版 和新 Outlook on Windows 中,API 禁用新邮件、答复和转发的签名选项。 如果选择了签名,则此 API 调用将禁用它。 |
get |
从邮件或约会中获取附件,并将其作为 方法 |
get |
从邮件或约会中获取附件,并将其作为 方法 |
get |
获取项的附件作为数组。 |
get |
获取项的附件作为数组。 |
get |
获取当 加载项被可操作消息激活时传递的初始化数据。 |
get |
获取当 加载项被可操作消息激活时传递的初始化数据。 |
get |
异步获取已保存 项的 Exchange Web Services (EWS) 项标识符 。 调用时,此方法通过回调函数返回项 ID。 |
get |
异步获取已保存 项的 Exchange Web Services (EWS) 项标识符 。 调用时,此方法通过回调函数返回项 ID。 |
get |
以异步方式返回邮件的主题或正文中选定的数据。 如果没有选择,但光标位于正文或主题中,该方法将返回所选数据的空字符串。 如果选定的是字段,而不是正文或主题,则此方法返回 若要从回调函数访问所选数据,请调用 |
get |
以异步方式返回邮件的主题或正文中选定的数据。 如果没有选择,但光标位于正文或主题中,该方法将返回所选数据的空字符串。 如果选定的是字段,而不是正文或主题,则此方法返回 若要从回调函数访问所选数据,请调用 |
get |
获取共享文件夹或共享邮箱中约会或邮件的属性。 有关使用此 API 的详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。 |
get |
获取共享文件夹或共享邮箱中约会或邮件的属性。 有关使用此 API 的详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。 |
is |
获取是否启用了客户端签名。 在 Outlook on Windows (经典) 和 Mac 中,如果新邮件、答复或转发的默认签名设置为发送 Outlook 帐户的模板,则返回 |
is |
获取是否启用了客户端签名。 在 Outlook on Windows (经典) 和 Mac 中,如果新邮件、答复或转发的默认签名设置为发送 Outlook 帐户的模板,则返回 |
load |
异步加载所选项目上此外接程序的自定义属性。 自定义属性以键值对的形式存储在每个应用、每个项目的基础上。 此方法在回调中返回 CustomProperties 对象,该对象提供访问特定于当前项和当前加载项的自定义属性的方法。 自定义属性不会对项进行加密,因此不应将其用作安全存储。 自定义属性作为 |
remove |
将附件从邮件或约会中删除。
|
remove |
将附件从邮件或约会中删除。
|
remove |
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Item 对象模型 事件部分。 |
remove |
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。 有关支持的事件,请参阅 Item 对象模型 事件部分。 |
save |
异步保存项目。 由于约会没有草稿状态,如果在 |
save |
异步保存项目。 由于约会没有草稿状态,如果在 |
set |
以异步方式将数据插入到邮件的正文或主题中。 方法 |
set |
以异步方式将数据插入到邮件的正文或主题中。 方法 |
属性详细信息
body
获取一个提供用于处理项目正文的方法的对象。
body: Body;
属性值
注解
最低权限级别: 读取项
适用的 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 an object that is passed as the result parameter to the callback function.
{
"value": "TEXT of whole body (including threads below)",
"status": "succeeded",
"asyncContext": "This is passed to the callback"
}
categories
获取一个 对象,该对象提供用于管理项类别的方法。
categories: Categories;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/45-categories/work-with-categories.yaml
Office.context.mailbox.item.categories.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const categories = asyncResult.value;
if (categories && categories.length > 0) {
console.log("Categories assigned to this item:");
console.log(JSON.stringify(categories));
} else {
console.log("There are no categories assigned to this item.");
}
} else {
console.error(asyncResult.error);
}
});
...
// Note: In order for you to successfully add a category,
// it must be in the mailbox categories master list.
Office.context.mailbox.masterCategories.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const masterCategories = asyncResult.value;
if (masterCategories && masterCategories.length > 0) {
// Grab the first category from the master list.
const categoryToAdd = [masterCategories[0].displayName];
Office.context.mailbox.item.categories.addAsync(categoryToAdd, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log(`Successfully assigned category '${categoryToAdd}' to item.`);
} else {
console.log("categories.addAsync call failed with error: " + asyncResult.error.message);
}
});
} else {
console.log("There are no categories in the master list on this mailbox. You can add categories using Office.context.mailbox.masterCategories.addAsync.");
}
} else {
console.error(asyncResult.error);
}
});
...
Office.context.mailbox.item.categories.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const categories = asyncResult.value;
if (categories && categories.length > 0) {
// Grab the first category assigned to this item.
const categoryToRemove = [categories[0].displayName];
Office.context.mailbox.item.categories.removeAsync(categoryToRemove, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log(`Successfully unassigned category '${categoryToRemove}' from this item.`);
} else {
console.log("categories.removeAsync call failed with error: " + asyncResult.error.message);
}
});
} else {
console.log("There are no categories assigned to this item.");
}
} else {
console.error(asyncResult.error);
}
});
end
获取或设置约会结束的日期和时间。
属性end
是表示为协调世界时 (UTC) 日期和时间值的 Time 对象。 可以使用 convertToLocalClientTime
方法将 end
属性值转换为客户端的本地日期和时间。
使用 Time.setAsync
方法设置结束时间时,应使用 convertToUtcClientTime
方法将客户端的本地时间转换为服务器的 UTC。
重要提示:在 Windows 客户端中,不能使用此属性来更新重复周期的结束。
end: Time;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// The following example sets the end time of an appointment in compose mode by
// using the `setAsync` method of the `Time` object.
const endTime = new Date("3/14/2015");
const options = {
// Pass information that can be used in the callback.
asyncContext: {verb: "Set"}
};
Office.context.mailbox.item.end.setAsync(endTime, options, function(result) {
if (result.error) {
console.debug(result.error);
} else {
// Access the asyncContext that was passed to the setAsync method.
console.debug("End Time " + result.asyncContext.verb);
}
});
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-set-end-appointment-organizer.yaml
Office.context.mailbox.item.end.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Appointment ends: ${result.value}`);
});
...
Office.context.mailbox.item.start.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Get start date failed with message ${result.error.message}`);
return;
}
const end = result.value; // Set end to current start date and time.
end.setDate(end.getDate() + 1); // Set end as 1 day later than start date.
Office.context.mailbox.item.end.setAsync(end, (result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Set end date failed with message ${result.error.message}`);
return;
}
console.log(`Successfully set end date and time to ${end}`);
});
});
enhancedLocation
获取或设置约会的位置。 属性 enhancedLocation
返回 一个 EnhancedLocation 对象,该对象提供获取、删除或添加项位置的方法。
enhancedLocation: EnhancedLocation;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-add-remove-enhancedlocation-appointment.yaml
Office.context.mailbox.item.enhancedLocation.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Failed to get locations. Error message: ${result.error.message}`);
return;
}
const places = result.value;
if (places && places.length > 0) {
result.value.forEach(function(place) {
console.log(`Location: ${place.displayName} (type: ${place.locationIdentifier.type})`);
if (place.locationIdentifier.type === Office.MailboxEnums.LocationType.Room) {
console.log("Email address: " + place.emailAddress);
}
});
} else {
console.log("There are no locations.");
}
});
...
const locations = [
{
id: "Contoso",
type: Office.MailboxEnums.LocationType.Custom
},
{
id: "room500@test.com",
type: Office.MailboxEnums.LocationType.Room
}
];
Office.context.mailbox.item.enhancedLocation.addAsync(locations, (result) => {
if (result.status === Office.AsyncResultStatus.Succeeded) {
console.log(`Successfully added locations ${JSON.stringify(locations)}`);
} else {
console.error(`Failed to add locations. Error message: ${result.error.message}`);
}
});
...
const locations = [
{
id: "Contoso",
type: Office.MailboxEnums.LocationType.Custom
},
{
id: "room500@test.com",
type: Office.MailboxEnums.LocationType.Room
}
];
Office.context.mailbox.item.enhancedLocation.removeAsync(locations, (result) => {
if (result.status === Office.AsyncResultStatus.Succeeded) {
console.log(`Successfully removed locations ${JSON.stringify(locations)}`);
} else {
console.error(`Failed to remove locations. Error message: ${result.error.message}`);
}
});
itemType
获取实例表示的项的类型。
itemType
属性返回其中一个 ItemType
枚举值,指示 item
对象实例是邮件还是约会。
itemType: MailboxEnums.ItemType | string;
属性值
Office.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 对象,该对象提供用于获取和设置约会位置的方法。
location: Location;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
const userContext = { value : 1 };
Office.context.mailbox.item.location.getAsync( { context: userContext}, callback);
function callback(asyncResult) {
const context = asyncResult.context;
const location = asyncResult.value;
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-set-location-appointment-organizer.yaml
Office.context.mailbox.item.location.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Appointment location: ${result.value}`);
});
...
const location = "my office";
Office.context.mailbox.item.location.setAsync(location, (result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Successfully set location to ${location}`);
});
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);
optionalAttendees
提供对事件的可选与会者的访问权限。 对象的类型和访问级别取决于当前项的模式。
optionalAttendees
属性返回一个 Recipients
对象,该对象提供用于获取或更新可选与会者的方法。 但是,根据客户端/平台 ((即 Windows、Mac 等 ) ),可能会对可以获取或更新的收件人数施加限制。 有关更多详细信息,请参阅 Recipients 对象。
optionalAttendees: Recipients;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
Office.context.mailbox.item.optionalAttendees.setAsync( ['alice@contoso.com', 'bob@contoso.com'] );
Office.context.mailbox.item.optionalAttendees.addAsync( ['jason@contoso.com'] );
Office.context.mailbox.item.optionalAttendees.getAsync(callback);
function callback(asyncResult) {
const arrayOfOptionalAttendeesRecipients = asyncResult.value;
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-set-optional-attendees-appointment-organizer.yaml
Office.context.mailbox.item.optionalAttendees.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const apptOptionalAttendees = asyncResult.value;
for (let i = 0; i < apptOptionalAttendees.length; i++) {
console.log(
"Optional attendees: " +
apptOptionalAttendees[i].displayName +
" (" +
apptOptionalAttendees[i].emailAddress +
") - response: " +
apptOptionalAttendees[i].appointmentResponse
);
}
} else {
console.error(asyncResult.error);
}
});
...
const email = $("#emailOptional")
.val()
.toString();
const emailArray = [email];
Office.context.mailbox.item.optionalAttendees.setAsync(emailArray, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Succeeded in setting optional attendees field.");
} else {
console.error(asyncResult.error);
}
});
organizer
获取指定会议的组织者。
属性 organizer
返回 一个 Organizer 对象,该对象提供获取组织器值的方法。
organizer: Organizer;
属性值
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-organizer-appointment-organizer.yaml
Office.context.mailbox.item.organizer.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const apptOrganizer = asyncResult.value;
console.log("Organizer: " + apptOrganizer.displayName + " (" + apptOrganizer.emailAddress + ")");
} else {
console.error(asyncResult.error);
}
});
recurrence
获取或设置约会的重复模式。
如果项目是系列或系列中的实例,则 recurrence
属性返回定期约会或会议请求的定期对象。
null
返回单个约会和单个约会的会议请求。
注意:会议请求 itemClass
的 IPM.Schedule.Meeting.Request
值为 。
注意:如果定期对象为 null,则表示该对象是单个约会或单个约会的会议请求,而不是序列的一部分。
recurrence: Recurrence;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/50-recurrence/get-set-recurrence-appointment-organizer.yaml
Office.context.mailbox.item.recurrence.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const recurrence = asyncResult.value;
if (recurrence === null) {
console.log("This is a single appointment.");
} else {
console.log(`Recurrence pattern: ${JSON.stringify(recurrence)}`);
}
} else {
console.error(asyncResult.error);
}
});
...
// Important: Can only set the recurrence pattern of an appointment series.
const currentDate = new Date();
let seriesTimeObject: Office.SeriesTime;
// Set series start date to tomorrow.
seriesTimeObject.setStartDate(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDay() + 1);
// Set series end date to one year from now.
seriesTimeObject.setEndDate(currentDate.getFullYear() + 1, currentDate.getMonth() + 1, currentDate.getDay());
// Set start time to 1:30 PM.
seriesTimeObject.setStartTime(13, 30);
// Set duration to 30 minutes.
seriesTimeObject.setDuration(30);
const pattern: Office.Recurrence = {
seriesTime: seriesTimeObject,
recurrenceType: Office.MailboxEnums.RecurrenceType.Yearly,
recurrenceProperties: {
interval: 1,
dayOfWeek: Office.MailboxEnums.Days.Tue,
weekNumber: Office.MailboxEnums.WeekNumber.Second,
month: Office.MailboxEnums.Month.Sep
},
recurrenceTimeZone: { name: Office.MailboxEnums.RecurrenceTimeZone.PacificStandardTime }
};
Office.context.mailbox.item.recurrence.setAsync(pattern, (asyncResult) => {
if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Failed to set recurrence. Error: ${asyncResult.error.message}`);
return;
}
console.log(`Succeeded in setting recurrence pattern ${JSON.stringify(pattern)}`);
});
requiredAttendees
提供对事件的必需与会者的访问权限。 对象的类型和访问级别取决于当前项的模式。
requiredAttendees
属性返回一个 Recipients
对象,该对象提供用于获取或更新必需与会者的方法。 但是,根据客户端/平台 ((即 Windows、Mac 等 ) ),可能会对可以获取或更新的收件人数施加限制。 有关更多详细信息,请参阅 Recipients 对象。
requiredAttendees: Recipients;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
Office.context.mailbox.item.requiredAttendees.setAsync( ['alice@contoso.com', 'bob@contoso.com'] );
Office.context.mailbox.item.requiredAttendees.addAsync( ['jason@contoso.com'] );
Office.context.mailbox.item.requiredAttendees.getAsync(callback);
function callback(asyncResult) {
const arrayOfRequiredAttendeesRecipients = asyncResult.value;
console.log(JSON.stringify(arrayOfRequiredAttendeesRecipients));
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/30-recipients-and-attendees/get-set-required-attendees-appointment-organizer.yaml
Office.context.mailbox.item.requiredAttendees.getAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const apptRequiredAttendees = asyncResult.value;
for (let i = 0; i < apptRequiredAttendees.length; i++) {
console.log(
"Required attendees: " +
apptRequiredAttendees[i].displayName +
" (" +
apptRequiredAttendees[i].emailAddress +
") - response: " +
apptRequiredAttendees[i].appointmentResponse
);
}
} else {
console.error(asyncResult.error);
}
});
...
const email = $("#emailRequired")
.val()
.toString();
const emailArray = [email];
Office.context.mailbox.item.requiredAttendees.setAsync(emailArray, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Succeeded in setting required attendees field.");
} else {
console.error(asyncResult.error);
}
});
seriesId
获取实例所属的序列的 ID。
在 Outlook 网页版 中,在 Windows (new 和 classic) 上,在 Mac 上,seriesId
属性返回此项目所属的父 (系列) 的 Exchange Web Services (EWS) ID。 但是,在 Android 版 Outlook 和 iOS 中, seriesId
返回父项的 REST ID。
注意:属性返回的 seriesId
标识符与 Exchange Web Services 项标识符相同。 属性 seriesId
与 Outlook REST API 使用的 Outlook ID 不同。 在使用此值进行 REST API 调用之前,应使用 Office.context.mailbox.convertToRestId
进行转换。 有关详细信息,请参阅 使用 Outlook 外接程序中的 Outlook REST API。
对于没有父项(如单个约会、系列项目或会议请求)的项目,属性seriesId
null
返回 ,对于不是会议请求的任何其他项目,则返回 undefined
。
seriesId: string;
属性值
string
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/50-recurrence/get-series-id.yaml
const seriesId = Office.context.mailbox.item.seriesId;
if (seriesId === undefined) {
console.log("This is a message that's not a meeting request.");
} else if (seriesId === null) {
console.log("This is a single appointment, a parent series, or a meeting request for a series or single meeting.");
} else {
console.log("This is an instance belonging to series with ID " + seriesId);
}
sessionData
在Compose模式下管理项的 SessionData。
重要提示:每个外接程序的整个 SessionData 对象限制为 50,000 个字符。
sessionData: SessionData;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/session-data-apis.yaml
Office.context.mailbox.item.sessionData.getAllAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("The sessionData is " + JSON.stringify(asyncResult.value));
} else {
console.log("Failed to get all sessionData. Error: " + JSON.stringify(asyncResult.error));
}
});
start
获取或设置约会开始的日期和时间。
属性start
是表示为协调世界时 (UTC) 日期和时间值的 Time 对象。 可以使用 convertToLocalClientTime
方法将值转换为客户端的本地日期和时间。
使用 Time.setAsync
方法设置开始时间时,应使用 convertToUtcClientTime
方法将客户端的本地时间转换为服务器的 UTC。
重要提示:在 Windows 客户端中,不能使用此属性来更新重复周期的开始时间。
start: Time;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-set-start-appointment-organizer.yaml
Office.context.mailbox.item.start.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Appointment starts: ${result.value}`);
});
...
const start = new Date(); // Represents current date and time.
start.setDate(start.getDate() + 2); // Add 2 days to current date.
Office.context.mailbox.item.start.setAsync(start, (result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Successfully set start date and time to ${start}`);
});
subject
获取或设置显示在项目的主题字段中的说明。
subject
属性获取或设置由电子邮件服务器发送项目时的整个主题。
subject
属性返回一个 Subject
对象,该对象提供用于获取和设置主题的方法。
subject: Subject;
属性值
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-set-subject-compose.yaml
Office.context.mailbox.item.subject.getAsync((result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Subject: ${result.value}`);
});
...
let subject = "Hello World!";
Office.context.mailbox.item.subject.setAsync(subject, (result) => {
if (result.status !== Office.AsyncResultStatus.Succeeded) {
console.error(`Action failed with message ${result.error.message}`);
return;
}
console.log(`Successfully set subject to ${subject}`);
});
方法详细信息
addFileAttachmentAsync(uri, attachmentName, options, callback)
将文件作为附件添加到邮件或约会。
addFileAttachmentAsync
方法在指定的 URI 上载文件并将其附加到撰写窗体中的项目。
addFileAttachmentAsync(uri: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- uri
-
string
提供附加到邮件或约会的文件的位置的 URI。 最大长度为 2048 个字符。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- options
-
Office.AsyncContextOptions & { isInline: boolean }
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
isInline
:如果为 true,则指示附件将以内联方式显示为邮件正文中的图像,并且不会显示在附件列表中。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果上传附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明:
在最新版本的经典 Outlook on Windows 中,引入了一个 bug,该 bug 错误地将标头追加
Authorization: Bearer
到此操作 (是使用此 API 还是 Outlook UI) 。 若要解决此问题,可以尝试使用要求集 1.8 中引入的addFileAttachmentFromBase64
API。要附加的文件的 URI 必须支持生产中的缓存。 托管映像的服务器不应返回在
Cache-Control
HTTP 响应中指定no-cache
、no-store
或类似选项的标头。 但是,当你开发加载项并更改文件时,缓存可能会阻止你看到所做的更改。 建议在开发期间使用Cache-Control
标头。可以将同一 URI 与 方法一起使用
removeAttachmentAsync
,以删除同一会话中的附件。
错误:
AttachmentSizeExceeded
:附件大于允许的大小。FileTypeNotSupported
:附件具有不允许的扩展名。NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/attachments-compose.yaml
const attachmentUrl = $("#attachmentUrl")
.val()
.toString();
Office.context.mailbox.item.addFileAttachmentAsync(
attachmentUrl,
getFileName(attachmentUrl),
{ isInline: false },
(result) => {
console.log(result);
}
);
addFileAttachmentAsync(uri, attachmentName, callback)
将文件作为附件添加到邮件或约会。
addFileAttachmentAsync
方法在指定的 URI 上载文件并将其附加到撰写窗体中的项目。
addFileAttachmentAsync(uri: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- uri
-
string
提供附加到邮件或约会的文件的位置的 URI。 最大长度为 2048 个字符。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果上传附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明:
在最新版本的经典 Outlook on Windows 中,引入了一个 bug,该 bug 错误地将标头追加
Authorization: Bearer
到此操作 (是使用此 API 还是 Outlook UI) 。 若要解决此问题,可以尝试使用要求集 1.8 中引入的addFileAttachmentFromBase64
API。要附加的文件的 URI 必须支持生产中的缓存。 托管映像的服务器不应返回在
Cache-Control
HTTP 响应中指定no-cache
、no-store
或类似选项的标头。 但是,当你开发加载项并更改文件时,缓存可能会阻止你看到所做的更改。 建议在开发期间使用Cache-Control
标头。可以将同一 URI 与 方法一起使用
removeAttachmentAsync
,以删除同一会话中的附件。
错误:
AttachmentSizeExceeded
:附件大于允许的大小。FileTypeNotSupported
:附件具有不允许的扩展名。NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
addFileAttachmentFromBase64Async(base64File, attachmentName, options, callback)
将文件作为附件添加到邮件或约会。
方法 addFileAttachmentFromBase64Async
从 Base64 编码上传文件,并将其附加到撰写窗体中的项目。 此方法返回 对象中的 asyncResult.value
附件标识符。
随后可以将该标识符与 removeAttachmentAsync
方法一同使用,以删除同一个会话中的附件。
注意:如果使用数据 URL API (例如 readAsDataURL
,) ,则需要去除数据 URL 前缀,然后将字符串的其余部分发送到此 API。 例如,如果完整字符串由 data:image/svg+xml;base64,<rest of Base64 string>
表示,则删除 data:image/svg+xml;base64,
。
addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, options: Office.AsyncContextOptions & { isInline: boolean }, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- base64File
-
string
要添加到电子邮件或事件的图像或文件的 Base64 编码内容。 编码字符串的最大长度为 27,892,122 个字符, (大约 25 MB) 。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- options
-
Office.AsyncContextOptions & { isInline: boolean }
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
isInline
:如果为 true,则指示附件将以内联方式显示为邮件正文中的图像,并且不会显示在附件列表中。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果上传附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
AttachmentSizeExceeded
:附件大于允许的大小。FileTypeNotSupported
:附件具有不允许的扩展名。NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
注意:如果要将内联 Base64 图像添加到正在撰写的邮件或约会的正文中,必须先使用 Office.context.mailbox.item.body.getAsync 方法获取当前项目正文,然后使用 插入图像 addFileAttachmentFromBase64Async
。 否则,图像在插入后不会呈现在正文中。 有关进一步的指导,请参阅 附加文件。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/attachments-compose.yaml
const base64String =
"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsSAAALEgHS3X78AAACRUlEQVRYw82XzXHbMBCFP2F8tzsQc8Ixyh0zoiuIXIGdCsxUYKqC0B04FdiuwMoM7mGOOIXqQGoAymXhgSX+itJM9kIRFLAP+3YXD5Pdbscx5oxaAIW8Ztr6l2PWmQwF4IyaieP53qdfAqQ8CwBn1JU4vpWhrbxXQA5MZfynANmcDIAzKgcy4FKGXsVJFf3nLgKyBQptfT4KQMRz2N0fcbxqmRMDWXflx0VPnrdArq0vekQ1Dv0UeHZGNebHhwjU8AzwKM43RyZnbAf58Q6ghudeWd0Aus0+5EcMIIRi3beua0D3Nm39BEAx3i7HTK4DEBJn5YxKOnaRA5+ErpMBWMpzDvx1RuXCcxOISlufAjfC7zgAsqsvUvMAD0ApPaEtGi9AIlUzKgJo60tt/SyKRkzLrAXERluf7W1gOICWaMyB386oooOWsIHvXbSoHuUSFovtHqicUVnH3EJoeT0aQEf5/XBGlc6otIOWBXAtPeZkAIJ9Bt6cUU9tZautX2nrk3MACHYr1ZKProKRtDw4o8pzAPjWo+NtpXTTvoteDDg8noDAcwbcRedAkGdFXyk2GEDcegVAFp2gyVDHjRQ4o6q2smoqtR5Hd+qMqtoALCWUUymr1m43QMZfOaMK4C0SrMsDANJ2E5FNcbdbjHC+ENl+H0myJFbLtaq4Rt8dyPBYRQV1E40nMv9rl7xrOw3DGb+Whcqu3i/OM6CUOWvgRlufNmnLYy4m77uJI7AXtdNcTDrU71LEyv7v01/N/ovL6bmu5/8A1tNWZldH0W4AAAAASUVORK5CYII=";
Office.context.mailbox.item.addFileAttachmentFromBase64Async(
base64String,
"logo.png",
{ isInline: false },
(result) => {
console.log(result);
}
);
...
// Set the signature for the current item with inline image.
const modIcon1Base64 = "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpDRDMxMDg1MjBCNDZFMTExODE2MkM1RUI2M0M4MDYxRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMTUxQjgyRjQ2MEQxMUUxODlFMkQwNTYzQ0YwMTUxMiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMTUxQjgyRTQ2MEQxMUUxODlFMkQwNTYzQ0YwMTUxMiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQxMzEwODUyMEI0NkUxMTE4MTYyQzVFQjYzQzgwNjFEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNEMzEwODUyMEI0NkUxMTE4MTYyQzVFQjYzQzgwNjFEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+uC/WfAAAAehJREFUeNpilCzfwEAEkAbiECA2A2J1IOaHin8E4ptAfBaIVwLxU0IGMRKw0B6IW4DYhoE4cASIK6E0VsCEQ1wUiNcB8QESLGOAqj0MxBuhZhBloS4QnwHiQAbygR/UDF1CFupCXSjHQDmQg5qli8tCUBBsQUoQ1AD8UDNFsVk4n0o+w+bT+egWglKjNymmeGhLkqLcG2oHAwtUoIuQDj5OVgZPLUmwRe5aEmAxqYqNpFgKssOcCeplM0KqdST5GfpDDRm0JfkYrj3/SE7QguyQY4ImYYLgCtAS10kHGMw6dzNsv/qC7OwCClJXYlR++v6b4er3j5QmIFcmaNlIL6AOslCIjhYKMTHQGTBBqxh6gXcgC6/R0cKbIAv30dHCfaAKGJTxHxJSqS3Fz9DkowNmywpyMcgA8fF7b8D8VWcfM6w8+4gYC+VB+RCk8hSh0gaUD4/dewvlvUWRe/z+GzGWgex4BGtiOAHxXhoHpzMoSGHZAhSPW2lo2VZYWkHOh4nEtLrIAE+hZmNUwK+B2BOIv1PRsu9QM1/jatNcBtVZ0IREKXgENesyoVYbzNIdFFi2A5tl+NqlL6BB4QBNzsSCU1A9nlAzMAALAQMOQl0qB23qWwKxIlIrDBQ394H4OBCvISYqAAIMACVibHDqsO7zAAAAAElFTkSuQmCC";
Office.context.mailbox.item.addFileAttachmentFromBase64Async(
modIcon1Base64,
"myImage.png",
{ isInline: true },
function(result) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
const signature = $("#signature").val() + "<img src='cid:myImage.png'>";
console.log(`Setting signature to "${signature}".`);
Office.context.mailbox.item.body.setSignatureAsync(
signature,
{ coercionType: "html" },
function(asyncResult) {
console.log(`setSignatureAsync: ${asyncResult.status}`);
}
);
} else {
console.error(`addFileAttachmentFromBase64Async: ${result.error}`);
}
}
);
addFileAttachmentFromBase64Async(base64File, attachmentName, callback)
将文件作为附件添加到邮件或约会。
方法 addFileAttachmentFromBase64Async
从 Base64 编码上传文件,并将其附加到撰写窗体中的项目。 此方法返回 对象中的 asyncResult.value
附件标识符。
随后可以将该标识符与 removeAttachmentAsync
方法一同使用,以删除同一个会话中的附件。
注意:如果使用数据 URL API (例如 readAsDataURL
,) ,则需要去除数据 URL 前缀,然后将字符串的其余部分发送到此 API。 例如,如果完整字符串由 data:image/svg+xml;base64,<rest of Base64 string>
表示,则删除 data:image/svg+xml;base64,
。
addFileAttachmentFromBase64Async(base64File: string, attachmentName: string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- base64File
-
string
要添加到电子邮件或事件的图像或文件的 Base64 编码内容。 编码字符串的最大长度为 27,892,122 个字符, (大约 25 MB) 。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果上传附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
AttachmentSizeExceeded
:附件大于允许的大小。FileTypeNotSupported
:附件具有不允许的扩展名。NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
注意:如果要将内联 Base64 图像添加到正在撰写的邮件或约会的正文中,必须先使用 Office.context.mailbox.item.body.getAsync 方法获取当前项目正文,然后使用 插入图像 addFileAttachmentFromBase64Async
。 否则,图像在插入后不会呈现在正文中。 有关进一步的指导,请参阅 附加文件。
addHandlerAsync(eventType, handler, options, callback)
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Item 对象模型 事件部分。
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
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
function myHandlerFunction(eventarg) {
if (eventarg.attachmentStatus === Office.MailboxEnums.AttachmentStatus.Added) {
const attachment = eventarg.attachmentDetails;
console.log("Event Fired and Attachment Added!");
getAttachmentContentAsync(attachment.id, options, callback);
}
}
Office.context.mailbox.item.addHandlerAsync(Office.EventType.AttachmentsChanged, myHandlerFunction, myCallback);
addHandlerAsync(eventType, handler, callback)
添加支持事件的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Item 对象模型 事件部分。
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
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
addItemAttachmentAsync(itemId, attachmentName, options, callback)
将 Exchange 项目(如邮件)作为附件添加到邮件或约会。
addItemAttachmentAsync
方法将包含指定 Exchange 标识符的项目附加到撰写窗体中的项目。 如果指定回调函数,则会使用一个参数调用 方法, asyncResult
该参数包含附件标识符或指示附加项时发生的任何错误的代码。 如果需要, options
可以使用 参数将状态信息传递给回调函数。
随后可以将该标识符与 removeAttachmentAsync
方法一同使用,以删除同一个会话中的附件。
如果你的 Office 加载项在 Outlook 网页版 和新的 Outlook on Windows 中运行,则 addItemAttachmentAsync
该方法可以将项目附加到您正在编辑的项目以外的项目。 但是,这不受支持,不建议这样做。
addItemAttachmentAsync(itemId: any, attachmentName: string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- itemId
-
any
要附加的项目的 Exchange 标识符。 最大长度为 100 个字符。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果添加附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
-
NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
示例
// The following example adds an existing Outlook item as an attachment
// with the name "My Attachment".
function addAttachment() {
// EWS ID of item to attach (shortened for readability).
const itemId = "AAMkADI1...AAA=";
// The values in asyncContext can be accessed in the callback.
const options = { asyncContext: { var1: 1, var2: 2 } };
Office.context.mailbox.item.addItemAttachmentAsync(itemId, "My Attachment", options, (result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error("Failed to add attachment: " + result.error.message);
return;
}
console.log("Attachment added successfully.");
console.log("var1: " + result.asyncContext.var1);
console.log("var2: " + result.asyncContext.var2);
});
}
addItemAttachmentAsync(itemId, attachmentName, callback)
将 Exchange 项目(如邮件)作为附件添加到邮件或约会。
addItemAttachmentAsync
方法将包含指定 Exchange 标识符的项目附加到撰写窗体中的项目。 如果指定回调函数,则会使用一个参数调用 方法, asyncResult
该参数包含附件标识符或指示附加项时发生的任何错误的代码。 如果需要, options
可以使用 参数将状态信息传递给回调函数。
随后可以将该标识符与 removeAttachmentAsync
方法一同使用,以删除同一个会话中的附件。
如果你的 Office 加载项在 Outlook 网页版 和新的 Outlook on Windows 中运行,则 addItemAttachmentAsync
该方法可以将项目附加到您正在编辑的项目以外的项目。 但是,这不受支持,不建议这样做。
addItemAttachmentAsync(itemId: any, attachmentName: string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- itemId
-
any
要附加的项目的 Exchange 标识符。 最大长度为 100 个字符。
- attachmentName
-
string
在附件上载过程中显示的附件名称。 最大长度为 255 个字符。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
可选。 方法完成后,使用类型的 Office.AsyncResult
单个参数调用在回调参数中传递的函数。 如果成功,附件标识符将在 asyncResult.value
属性中提供。 如果添加附件失败,asyncResult
对象将包含一个提供错误说明的 Error
对象。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
-
NumberOfAttachmentsExceeded
:邮件或约会的附件过多。
close()
关闭当前正在撰写的项目。
close
方法的行为取决于要撰写的项目的当前状态。 如果项有未保存的更改,客户端会提示用户保存、放弃或关闭操作。
在 Outlook on Windows (经典) 和 Mac 中, close
该方法对阅读窗格中的回复没有任何影响。
close(): void;
返回
void
注解
[ API 集:邮箱 1.3 ]
最低权限级别: 受限
适用的 Outlook 模式:约会组织者
重要提示:在 Outlook 网页版 和新的 Outlook on Windows 中,如果项目是约会,并且以前使用 saveAsync
保存过,则即使自上次保存项目以来未发生任何更改,也会提示用户保存、放弃或取消。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/25-item-save-and-close/close.yaml
Office.context.mailbox.item.close();
disableClientSignatureAsync(options, callback)
禁用 Outlook 客户端签名。
在 Outlook on Windows (经典) 和 Mac 中,此 API 将发送帐户的“新邮件”和“答复/转发”部分下的签名设置为“ (无) ”,从而有效地禁用签名。 在 Outlook 网页版 和新 Outlook on Windows 中,API 禁用新邮件、答复和转发的签名选项。 如果选择了签名,则此 API 调用将禁用它。
disableClientSignatureAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在回调参数中传递的函数。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/work-with-client-signatures.yaml
// Disable the client signature.
Office.context.mailbox.item.disableClientSignatureAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("disableClientSignatureAsync succeeded");
} else {
console.error(asyncResult.error);
}
});
disableClientSignatureAsync(callback)
禁用 Outlook 客户端签名。
在 Outlook on Windows (经典) 和 Mac 中,此 API 将发送帐户的“新邮件”和“答复/转发”部分下的签名设置为“ (无) ”,从而有效地禁用签名。 在 Outlook 网页版 和新 Outlook on Windows 中,API 禁用新邮件、答复和转发的签名选项。 如果选择了签名,则此 API 调用将禁用它。
disableClientSignatureAsync(callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在回调参数中传递的函数。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
getAttachmentContentAsync(attachmentId, options, callback)
从邮件或约会中获取附件,并将其作为 AttachmentContent
对象返回。
方法 getAttachmentContentAsync
从项中获取具有指定标识符的附件。 最佳做法是,应从通话中获取附件的标识符,然后在同一 getAttachmentsAsync
会话中使用该标识符检索附件。 在 Outlook 网页版、移动设备和新的 Outlook on Windows 中,附件标识符仅在同一会话中有效。 当用户关闭应用时,会话结束,或者如果用户开始撰写内联窗体,然后弹出窗体以在单独的窗口中继续。
getAttachmentContentAsync(attachmentId: string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<AttachmentContent>) => void): void;
参数
- attachmentId
-
string
要获取的附件的标识符。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<Office.AttachmentContent>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 如果调用失败,属性 asyncResult.error
将包含错误代码,其中包含失败的原因。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
错误:
AttachmentTypeNotSupported
:不支持附件类型。 不支持的类型包括 RTF 格式的嵌入图像,或者电子邮件或日历项目以外的项目附件类型 (,例如联系人或任务项) 。InvalidAttachmentId
:附件标识符不存在。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/get-attachment-content.yaml
// Gets the attachments of the current message or appointment in compose mode.
const options = { asyncContext: { currentItem: item } };
// The getAttachmentsAsync call can only be used in compose mode.
item.getAttachmentsAsync(options, callback);
function callback(result) {
if (result.status === Office.AsyncResultStatus.Failed) {
console.log(result.error.message);
return;
}
if (result.value.length <= 0) {
console.log("Mail item has no attachments.");
return;
}
for (let i = 0; i < result.value.length; i++) {
// Log the attachment type and its contents to the console.
result.asyncContext.currentItem.getAttachmentContentAsync(result.value[i].id, handleAttachmentsCallback);
}
}
getAttachmentContentAsync(attachmentId, callback)
从邮件或约会中获取附件,并将其作为 AttachmentContent
对象返回。
方法 getAttachmentContentAsync
从项中获取具有指定标识符的附件。 最佳做法是,应从通话中获取附件的标识符,然后在同一 getAttachmentsAsync
会话中使用该标识符检索附件。 在 Outlook 网页版、移动设备和新的 Outlook on Windows 中,附件标识符仅在同一会话中有效。 当用户关闭应用时,会话结束,或者如果用户开始撰写内联窗体,然后弹出窗体以在单独的窗口中继续。
getAttachmentContentAsync(attachmentId: string, callback?: (asyncResult: Office.AsyncResult<AttachmentContent>) => void): void;
参数
- attachmentId
-
string
要获取的附件的标识符。
- callback
-
(asyncResult: Office.AsyncResult<Office.AttachmentContent>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 如果调用失败,属性 asyncResult.error
将包含错误代码,其中包含失败的原因。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
错误:
AttachmentTypeNotSupported
:不支持附件类型。 不支持的类型包括 RTF 格式的嵌入图像,或者电子邮件或日历项目以外的项目附件类型 (,例如联系人或任务项) 。InvalidAttachmentId
:附件标识符不存在。
getAttachmentsAsync(options, callback)
获取项的附件作为数组。
getAttachmentsAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<AttachmentDetailsCompose[]>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<Office.AttachmentDetailsCompose[]>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果调用失败,属性 asyncResult.error
将包含错误代码,其中包含失败的原因。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/attachments-compose.yaml
Office.context.mailbox.item.getAttachmentsAsync((result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(result.error.message);
return;
}
if (result.value.length > 0) {
for (let i = 0; i < result.value.length; i++) {
const attachment = result.value[i];
let attachmentType;
switch (attachment.attachmentType) {
case Office.MailboxEnums.AttachmentType.Cloud:
attachmentType = "Attachment is stored in a cloud location";
break;
case Office.MailboxEnums.AttachmentType.File:
attachmentType = "Attachment is a file";
break;
case Office.MailboxEnums.AttachmentType.Item:
attachmentType = "Attachment is an Exchange item";
break;
}
console.log(
"ID: " +
attachment.id +
"\n" +
"Type: " +
attachmentType +
"\n" +
"Name: " +
attachment.name +
"\n" +
"Size: " +
attachment.size +
"\n" +
"isInline: " +
attachment.isInline
);
}
} else {
console.log("No attachments on this message.");
}
});
getAttachmentsAsync(callback)
获取项的附件作为数组。
getAttachmentsAsync(callback?: (asyncResult: Office.AsyncResult<AttachmentDetailsCompose[]>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<Office.AttachmentDetailsCompose[]>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果调用失败,属性 asyncResult.error
将包含错误代码,其中包含失败的原因。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
getInitializationContextAsync(options, callback)
获取当 加载项被可操作消息激活时传递的初始化数据。
getInitializationContextAsync(options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 成功时,初始化上下文数据以字符串 (或空字符串的形式提供(如果 属性中 asyncResult.value
没有初始化上下文) )。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Get the initialization context (if present).
Office.context.mailbox.item.getInitializationContextAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
if (asyncResult.value.length > 0) {
// The value is a string, parse to an object.
const context = JSON.parse(asyncResult.value);
// Do something with context.
} else {
// Empty context, treat as no context.
}
} else {
// Handle the error.
}
});
getInitializationContextAsync(callback)
获取当 加载项被可操作消息激活时传递的初始化数据。
getInitializationContextAsync(callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 成功时,初始化上下文数据以字符串 (或空字符串的形式提供(如果 属性中 asyncResult.value
没有初始化上下文) )。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
getItemIdAsync(options, callback)
异步获取已保存 项的 Exchange Web Services (EWS) 项标识符 。
调用时,此方法通过回调函数返回项 ID。
getItemIdAsync(options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 在 属性中 asyncResult.value
返回该项的 EWS 项 ID。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
重要说明:
返回的项目 ID 与 Outlook 条目 ID 或 Outlook REST API 使用的 ID 不同。 在使用此值进行 REST API 调用之前,应使用
Office.context.mailbox.convertToRestId
进行转换。例如,如果你的外接程序调用
getItemIdAsync
(获取用于 EWS 或 REST API) 的项目 ID,请注意,当 Outlook 处于缓存模式时,可能需要一段时间才能将项目同步到服务器。 在项目同步之前,无法识别项目 ID,并且使用它将返回错误。
错误:
-
ItemNotSaved
:在保存项目之前,无法检索 ID。
getItemIdAsync(callback)
异步获取已保存 项的 Exchange Web Services (EWS) 项标识符 。
调用时,此方法通过回调函数返回项 ID。
getItemIdAsync(callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 在 属性中 asyncResult.value
返回该项的 EWS 项 ID。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
重要说明:
返回的项目 ID 与 Outlook 条目 ID 或 Outlook REST API 使用的 ID 不同。 在使用此值进行 REST API 调用之前,应使用
Office.context.mailbox.convertToRestId
进行转换。例如,如果你的外接程序调用
getItemIdAsync
(获取用于 EWS 或 REST API) 的项目 ID,请注意,当 Outlook 处于缓存模式时,可能需要一段时间才能将项目同步到服务器。 在项目同步之前,无法识别项目 ID,并且使用它将返回错误。
错误:
-
ItemNotSaved
:在保存项目之前,无法检索 ID。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/item-id-compose.yaml
Office.context.mailbox.item.getItemIdAsync((result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(`getItemIdAsync failed with message: ${result.error.message}`);
return;
}
console.log(result.value);
});
getSelectedDataAsync(coercionType, options, callback)
以异步方式返回邮件的主题或正文中选定的数据。
如果没有选择,但光标位于正文或主题中,该方法将返回所选数据的空字符串。 如果选定的是字段,而不是正文或主题,则此方法返回 InvalidSelection
错误。
若要从回调函数访问所选数据,请调用 asyncResult.value.data
。 若要访问source
所选内容的来源属性,请调用asyncResult.value.sourceProperty
,它将为 body
或 subject
。
getSelectedDataAsync(coercionType: Office.CoercionType | string, options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<any>) => void): void;
参数
- coercionType
-
Office.CoercionType | string
请求数据的格式。 如果 Text
为 ,则该方法返回字符串形式的纯文本,删除存在的任何 HTML 标记。 如果 HTML
为 ,则该方法返回所选文本,无论是纯文本还是 HTML。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<any>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
所选数据作为字符串,格式由 coercionType
确定。
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Get selected data.
Office.context.mailbox.item.getSelectedDataAsync(Office.CoercionType.Text, { option1: "option1"}, getCallback);
function getCallback(asyncResult) {
const text = asyncResult.value.data;
const prop = asyncResult.value.sourceProperty;
console.log(`Selected text in ${prop}: ${text}`);
}
getSelectedDataAsync(coercionType, callback)
以异步方式返回邮件的主题或正文中选定的数据。
如果没有选择,但光标位于正文或主题中,该方法将返回所选数据的空字符串。 如果选定的是字段,而不是正文或主题,则此方法返回 InvalidSelection
错误。
若要从回调函数访问所选数据,请调用 asyncResult.value.data
。 若要访问source
所选内容的来源属性,请调用asyncResult.value.sourceProperty
,它将为 body
或 subject
。
getSelectedDataAsync(coercionType: Office.CoercionType | string, callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- coercionType
-
Office.CoercionType | string
请求数据的格式。 如果 Text
为 ,则该方法返回字符串形式的纯文本,删除存在的任何 HTML 标记。 如果 HTML
为 ,则该方法返回所选文本,无论是纯文本还是 HTML。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
所选数据作为字符串,格式由 coercionType
确定。
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/get-selected-data.yaml
Office.context.mailbox.item.getSelectedDataAsync(Office.CoercionType.Text, function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
const text = asyncResult.value.data;
const prop = asyncResult.value.sourceProperty;
console.log("Selected text in " + prop + ": " + text);
} else {
console.error(asyncResult.error);
}
});
getSharedPropertiesAsync(options, callback)
获取共享文件夹或共享邮箱中约会或邮件的属性。
有关使用此 API 的详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。
getSharedPropertiesAsync(options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<SharedProperties>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<Office.SharedProperties>) => void
方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 属性 asyncResult.value
提供共享项的属性。
返回
void
注解
[ API set: Mailbox 1.8 for shared folder support, Mailbox 1.13 for shared mailbox support ]
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
注意:iOS 版或 Android 版 Outlook 不支持此方法。
getSharedPropertiesAsync(callback)
获取共享文件夹或共享邮箱中约会或邮件的属性。
有关使用此 API 的详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。
getSharedPropertiesAsync(callback: (asyncResult: Office.AsyncResult<SharedProperties>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<Office.SharedProperties>) => void
方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 属性 asyncResult.value
提供共享项的属性。
返回
void
注解
[ API set: Mailbox 1.8 for shared folder support, Mailbox 1.13 for shared mailbox support ]
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
注意:iOS 版或 Android 版 Outlook 不支持此方法。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/65-delegates-and-shared-folders/get-shared-properties.yaml
Office.context.mailbox.item.getSharedPropertiesAsync((result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error("The current folder or mailbox isn't shared.");
return;
}
const sharedProperties = result.value;
console.log(`Owner: ${sharedProperties.owner}`);
console.log(`Permissions: ${sharedProperties.delegatePermissions}`);
console.log(`Target mailbox: ${sharedProperties.targetMailbox}`);
});
isClientSignatureEnabledAsync(options, callback)
获取是否启用了客户端签名。
在 Outlook on Windows (经典) 和 Mac 中,如果新邮件、答复或转发的默认签名设置为发送 Outlook 帐户的模板,则返回 true
。 在 Outlook 网页版 和新的 Windows 版 Outlook 中,如果为撰写类型 newMail
、 或 forward
启用了签名,reply
则返回 。true
如果在 Windows 上的 Outlook (经典) 或 Mac 上将设置设置为“ (无) ”,或者在 Outlook 网页版 或新的 Windows 版 Outlook 中禁用,则false
返回 。
isClientSignatureEnabledAsync(options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/work-with-client-signatures.yaml
// Check if the client signature is currently enabled.
Office.context.mailbox.item.isClientSignatureEnabledAsync(function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("isClientSignatureEnabledAsync succeeded with result: " + asyncResult.value);
} else {
console.error(asyncResult.error);
}
});
isClientSignatureEnabledAsync(callback)
获取是否启用了客户端签名。
在 Outlook on Windows (经典) 和 Mac 中,如果新邮件、答复或转发的默认签名设置为发送 Outlook 帐户的模板,则返回 true
。 在 Outlook 网页版 和新的 Windows 版 Outlook 中,如果为撰写类型 newMail
、 或 forward
启用了签名,reply
则返回 。true
如果在 Windows 上的 Outlook (经典) 或 Mac 上将设置设置为“ (无) ”,或者在 Outlook 网页版 或新的 Windows 版 Outlook 中禁用,则false
返回 。
isClientSignatureEnabledAsync(callback: (asyncResult: Office.AsyncResult<boolean>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<boolean>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
loadCustomPropertiesAsync(callback, userContext)
异步加载所选项目上此外接程序的自定义属性。
自定义属性以键值对的形式存储在每个应用、每个项目的基础上。 此方法在回调中返回 CustomProperties 对象,该对象提供访问特定于当前项和当前加载项的自定义属性的方法。 自定义属性不会对项进行加密,因此不应将其用作安全存储。
自定义属性作为 asyncResult.value
属性中的 CustomProperties
对象提供。 此对象可用于从邮件项获取、设置、保存和删除自定义属性。
loadCustomPropertiesAsync(callback: (asyncResult: Office.AsyncResult<CustomProperties>) => void, userContext?: any): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<Office.CustomProperties>) => void
方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
- userContext
-
any
可选。 开发人员可以提供他们想要在回调函数中访问的任何对象。 此对象可以通过回调函数中的 asyncResult.asyncContext
属性进行访问。
返回
void
注解
若要了解有关自定义属性的详细信息,请参阅 获取和设置 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.");
});
removeAttachmentAsync(attachmentId, options, callback)
将附件从邮件或约会中删除。
removeAttachmentAsync
方法删除项目中带指定标识符的附件。 最佳做法是,仅当同一个邮件应用程序在同一会话中添加了一个附件时,你才应使用该附件标识符来删除该附件。 在 Outlook 网页版、移动设备和新的 Outlook on Windows 中,附件标识符仅在同一会话中有效。 当用户关闭应用时,会话结束,或者如果用户开始撰写内联窗体,然后弹出窗体以在单独的窗口中继续。
removeAttachmentAsync(attachmentId: string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- attachmentId
-
string
要删除的附件的标识符。 的最大字符串长度attachmentId
为 200 个字符,在 Outlook 网页版 和 Windows (新) 和经典) 。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果删除附件失败,asyncResult.error
属性将包含一个说明失败原因的错误代码。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明*:该方法 removeAttachmentAsync
不会从邮件项中删除内联附件。 若要删除内联附件,请先获取项目的正文,然后从其内容中删除附件的任何引用。 使用 Office.Body API 获取和设置项的正文。
错误:
-
InvalidAttachmentId
:附件标识符不存在。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/40-attachments/attachments-compose.yaml
Office.context.mailbox.item.removeAttachmentAsync(
$("#attachmentId")
.val()
.toString(),
(result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(result.error.message);
return;
}
console.log(`Attachment removed successfully.`);
}
);
removeAttachmentAsync(attachmentId, callback)
将附件从邮件或约会中删除。
removeAttachmentAsync
方法删除项目中带指定标识符的附件。 最佳做法是,仅当同一个邮件应用程序在同一会话中添加了一个附件时,你才应使用该附件标识符来删除该附件。 在 Outlook 网页版、移动设备和新的 Outlook on Windows 中,附件标识符仅在同一会话中有效。 当用户关闭应用时,会话结束,或者如果用户开始撰写内联窗体,然后弹出窗体以在单独的窗口中继续。
removeAttachmentAsync(attachmentId: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- attachmentId
-
string
要删除的附件的标识符。 的最大字符串长度attachmentId
为 200 个字符,在 Outlook 网页版 和 Windows (新) 和经典) 。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。 如果删除附件失败,asyncResult.error
属性将包含一个说明失败原因的错误代码。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明*:该方法 removeAttachmentAsync
不会从邮件项中删除内联附件。 若要删除内联附件,请先获取项目的正文,然后从其内容中删除附件的任何引用。 使用 Office.Body API 获取和设置项的正文。
错误:
-
InvalidAttachmentId
:附件标识符不存在。
removeHandlerAsync(eventType, options, callback)
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Item 对象模型 事件部分。
removeHandlerAsync(eventType: Office.EventType | string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应撤销处理程序的事件。
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
removeHandlerAsync(eventType, callback)
删除受支持事件类型的事件处理程序。 注意:事件仅适用于任务窗格实现。
有关支持的事件,请参阅 Item 对象模型 事件部分。
removeHandlerAsync(eventType: Office.EventType | string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- eventType
-
Office.EventType | string
应撤销处理程序的事件。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读取项
适用的 Outlook 模式:约会组织者
示例
Office.context.mailbox.item.removeHandlerAsync(Office.EventType.InfobarClicked, (asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.error("Failed to remove event handler: " + asyncResult.error.message);
return;
}
console.log("Event handler removed successfully.");
});
saveAsync(options, callback)
异步保存项目。
由于约会没有草稿状态,如果在 saveAsync
撰写模式下对约会调用 ,则项目将保存为用户日历上的普通约会。 对于以前未保存的新约会,不会发送邀请。 对于现有约会,会向添加或删除的与会者发送更新。
saveAsync(options: Office.AsyncContextOptions, callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- options
- Office.AsyncContextOptions
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 在 属性中 asyncResult.value
返回 EWS 约会 ID。
返回
void
注解
[ API 集:邮箱 1.3 ]
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明:
在 Outlook 网页版、新的 Outlook on Windows 或处于联机模式的经典 Outlook on Windows (非缓存模式) 中,项目将保存到服务器。 在 Outlook 缓存模式下,该项目被保存到本地缓存中。
使用 HTML 格式的内容时,请务必注意 Outlook 客户端可能会修改内容。 这意味着对 、
Body.setAsync
甚至saveAsync
等Body.getAsync
方法的后续调用可能不会产生相同的内容。返回的标识符与 Exchange Web Services (EWS) 项标识符相同。 返回的项目 ID 与 Outlook 条目 ID 或 Outlook REST API 使用的 ID 不同。 在使用此值进行 REST API 调用之前,应使用
Office.context.mailbox.convertToRestId
进行转换。如果外接程序调用
saveAsync
以获取用于 EWS 或 REST API 的项目 ID,请注意,当 Outlook 处于缓存模式时,可能需要一段时间才能将项目实际同步到服务器。 在项目同步之前,使用项 ID 将返回错误。在 Outlook on Mac 中,只有版本 16.35 (20030802) 及更高版本支持保存会议。 否则,
saveAsync
当在撰写模式下从会议调用 时,方法将失败。 有关解决方法,请参阅无法使用 Office JS API 在Outlook for Mac中将会议另存为草稿。
错误:
-
InvalidAttachmentId
:附件标识符不存在。
示例
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/25-item-save-and-close/save.yaml
Office.context.mailbox.item.saveAsync(function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
console.log(`saveAsync succeeded, itemId is ${result.value}`);
}
else {
console.error(`saveAsync failed with message ${result.error.message}`);
}
});
saveAsync(callback)
异步保存项目。
由于约会没有草稿状态,如果在 saveAsync
撰写模式下对约会调用 ,则项目将保存为用户日历上的普通约会。 对于以前未保存的新约会,不会发送邀请。 对于现有约会,会向添加或删除的与会者发送更新。
saveAsync(callback: (asyncResult: Office.AsyncResult<string>) => void): void;
参数
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
方法完成后,使用单个参数 asyncResult
(即 Office.AsyncResult
对象)调用在 参数中callback
传递的函数。 在 属性中 asyncResult.value
返回 EWS 约会 ID。
返回
void
注解
[ API 集:邮箱 1.3 ]
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
重要说明:
在 Outlook 网页版、新的 Outlook on Windows 或处于联机模式的经典 Outlook on Windows (非缓存模式) 中,项目将保存到服务器。 在 Outlook 缓存模式下,该项目被保存到本地缓存中。
使用 HTML 格式的内容时,请务必注意 Outlook 客户端可能会修改内容。 这意味着对 、
Body.setAsync
甚至saveAsync
等Body.getAsync
方法的后续调用可能不会产生相同的内容。返回的标识符与 Exchange Web Services (EWS) 项标识符相同。 返回的项目 ID 与 Outlook 条目 ID 或 Outlook REST API 使用的 ID 不同。 在使用此值进行 REST API 调用之前,应使用
Office.context.mailbox.convertToRestId
进行转换。如果外接程序调用
saveAsync
以获取用于 EWS 或 REST API 的项目 ID,请注意,当 Outlook 处于缓存模式时,可能需要一段时间才能将项目实际同步到服务器。 在项目同步之前,使用项 ID 将返回错误。在 Outlook on Mac 中,只有版本 16.35 (20030802) 及更高版本支持保存会议。 否则,
saveAsync
当在撰写模式下从会议调用 时,方法将失败。 有关解决方法,请参阅无法使用 Office JS API 在Outlook for Mac中将会议另存为草稿。
错误:
-
InvalidAttachmentId
:附件标识符不存在。
示例
Office.context.mailbox.item.saveAsync(
function callback(result) {
// Process the result.
});
// The following is an example of the
// `result` parameter passed to the
// callback function. The `value`
// property contains the item ID of
// the item.
{
"value": "AAMkADI5...AAA=",
"status": "succeeded"
}
setSelectedDataAsync(data, options, callback)
以异步方式将数据插入到邮件的正文或主题中。
方法 setSelectedDataAsync
在项目的主题或正文的光标位置插入指定的字符串,或者,如果在编辑器中选择了文本,则替换所选文本。 如果光标不在正文或主题字段中,则返回错误。 插入后,光标将置于插入内容的末尾。
setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- data
-
string
要插入的数据。 数据不得超过 1,000,000 个字符。 如果传入的数据超过 1,000,000 个字符,则会引发 ArgumentOutOfRange
异常。
包含以下一个或多个属性的对象文本:- asyncContext
:开发人员可以在回调函数中提供他们想要访问的任何对象。
coercionType
:如果为文本,则当前样式在 Outlook 网页版、Windows (新) 和经典) 以及 Mac 上应用。 如果字段是 HTML 编辑器,只会插入文本数据,即使数据为 HTML,也不例外。 如果数据为 HTML 且字段支持 HTML (主题不) ,则当前样式将应用于 Outlook 网页版 和新 Outlook on Windows 中。 默认样式在 Outlook on Windows (经典) 和 Mac 中应用。 如果该字段是文本字段,则返回 InvalidDataFormat
错误。 如果未设置 coercionType
,则结果取决于该字段:如果该字段是 HTML,则使用 HTML;如果该字段是文本,则使用纯文本。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
-
InvalidAttachmentId
:附件标识符不存在。
示例
Office.context.mailbox.item.setSelectedDataAsync("<b>Hello World!</b>", { coercionType : "html" });
Office.context.mailbox.item.setSelectedDataAsync("Hello World!");
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/set-selected-data.yaml
Office.context.mailbox.item.setSelectedDataAsync("Replaced", function(asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
console.log("Selected text has been updated successfully.");
} else {
console.error(asyncResult.error);
}
});
setSelectedDataAsync(data, callback)
以异步方式将数据插入到邮件的正文或主题中。
方法 setSelectedDataAsync
在项目的主题或正文的光标位置插入指定的字符串,或者,如果在编辑器中选择了文本,则替换所选文本。 如果光标不在正文或主题字段中,则返回错误。 插入后,光标将置于插入内容的末尾。
setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;
参数
- data
-
string
要插入的数据。 数据不得超过 1,000,000 个字符。 如果传入的数据超过 1,000,000 个字符,则会引发 ArgumentOutOfRange
异常。
- callback
-
(asyncResult: Office.AsyncResult<void>) => void
可选。 方法完成后,使用类型的Office.AsyncResult
单个参数调用在 参数中callback
传递的函数。
返回
void
注解
最低权限级别: 读/写项
适用的 Outlook 模式:约会组织者
错误:
-
InvalidAttachmentId
:附件标识符不存在。