Office.Body interface

body 对象提供用于添加和更新邮件或约会内容的方法。 它将在所选项目的 body 属性中返回。

注解

[ API set: Mailbox 1.1 ]

HTML 表格边框颜色的已知问题

Windows 上的 Outlook:如果在Compose模式下将 HTML 表格中的各种单元格边框设置为不同的颜色,则单元格的边框可能不会反映预期的颜色。 有关已知行为,请访问 OfficeDev/office-js 问题 #1818

最低权限级别读取项

适用的 Outlook 模式:Compose或读取

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/add-inline-base64-image.yaml

const mailItem = Office.context.mailbox.item;
const base64String =
  "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN0S+bUAAAAMdFJOUwAQIDBAUI+fr7/P7yEupu8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVGhD7dfLdoMwDEVR6Cspzf9/b20QYOthS5Zn0Z2kVdY6O2WULrFYLBaLxd5ur4mDZD14b8ogWS/dtxV+dmx9ysA2QUj9TQRWv5D7HyKwuIW9n0vc8tkpHP0W4BOg3wQ8wtlvA+PC1e8Ao8Ld7wFjQtHvAiNC2e8DdqHqKwCrUPc1gE1AfRVgEXBfB+gF0lcCWoH2tYBOYPpqQCNwfT3QF9i+AegJfN8CtAWhbwJagtS3AbIg9o2AJMh9M5C+SVGBvx6zAfmT0r+Bv8JMwP4kyFPir+cswF5KL3WLv14zAFBCLf56Tw9cparFX4upgaJUtPhrOS1QlY5W+vWTXrGgBFB/b72ev3/0igUdQPppP/nfowfKUUEFcP207y/yxKmgAYQ+PywoAFOfCH3A2MdCFzD3kdADBvq10AGG+pXQBgb7pdAEhvuF0AIc/VtoAK7+JciAs38KIuDugyAC/v4hiMCE/i7IwLRBsh68N2WQjMVisVgs9i5bln8LGScNcCrONQAAAABJRU5ErkJggg==";

// Get the current body of the message or appointment.
mailItem.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
  if (bodyResult.status === Office.AsyncResultStatus.Succeeded) {
    // Insert the Base64-encoded image to the beginning of the body.
    const options = { isInline: true, asyncContext: bodyResult.value };
    mailItem.addFileAttachmentFromBase64Async(base64String, "sample.png", options, (attachResult) => {
      if (attachResult.status === Office.AsyncResultStatus.Succeeded) {
        let body = attachResult.asyncContext;
        body = body.replace("<p class=MsoNormal>", `<p class=MsoNormal><img src="cid:sample.png">`);

        mailItem.body.setAsync(body, { coercionType: Office.CoercionType.Html }, (setResult) => {
          if (setResult.status === Office.AsyncResultStatus.Succeeded) {
            console.log("Inline Base64-encoded image added to the body.");
          } else {
            console.log(setResult.error.message);
          }
        });
      } else {
        console.log(attachResult.error.message);
      }
    });
  } else {
    console.log(bodyResult.error.message);
  }
});

方法

appendOnSendAsync(data, options, callback)

在任何签名之后,将指定内容发送到项目正文末尾时追加。

若要使用 appendOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 请参阅 了解 Outlook 外接程序权限。 若要了解有关end-on-send及其配置的详细信息,请参阅 在 Outlook 加载项中实现 append-on-send

appendOnSendAsync(data, callback)

在任何签名之后,将指定内容发送到项目正文末尾时追加。

若要使用 appendOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 请参阅 了解 Outlook 外接程序权限。 若要了解有关end-on-send及其配置的详细信息,请参阅 在 Outlook 加载项中实现 append-on-send

getAsync(coercionType, options, callback)

使用指定的格式返回当前正文。

此方法以 指定的 coercionType格式返回整个当前正文。

getAsync(coercionType, callback)

使用指定的格式返回当前正文。

此方法以 指定的 coercionType格式返回整个当前正文。

getTypeAsync(options, callback)

获取一个值,该值指示内容采用 HTML 格式还是文本格式。

getTypeAsync(callback)

获取一个值,该值指示内容采用 HTML 格式还是文本格式。

prependAsync(data, options, callback)

将指定内容添加到项目正文开头。

prependAsync(data, callback)

将指定内容添加到项目正文开头。

prependOnSendAsync(data, options, callback)

发送邮件项目时,将 HTML 或纯文本预置到邮件或约会正文的开头。

若要使用 prependOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 有关指导,请参阅 了解 Outlook 外接程序权限

prependOnSendAsync(data, callback)

发送邮件项目时,将 HTML 或纯文本预置到邮件或约会正文的开头。

若要使用 prependOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 有关指导,请参阅 了解 Outlook 外接程序权限

setAsync(data, options, callback)

将整个正文替换为指定的文本。

setAsync(data, callback)

将整个正文替换为指定的文本。

setSelectedDataAsync(data, options, callback)

将正文中的所选内容更换为指定文本。

setSelectedDataAsync 方法将指定的字符串插入项目正文中的光标位置,或者,如果在编辑器中选定了文本,它就会替换所选文本。 如果光标从未出现在项目正文中,或者如果该项目的正文不关注 UI,该字符串将插入到正文内容的顶部。 插入后,光标将置于插入内容的末尾。

setSelectedDataAsync(data, callback)

将正文中的所选内容更换为指定文本。

setSelectedDataAsync 方法将指定的字符串插入项目正文中的光标位置,或者,如果在编辑器中选定了文本,它就会替换所选文本。 如果光标从未出现在项目正文中,或者如果该项目的正文不关注 UI,该字符串将插入到正文内容的顶部。 插入后,光标将置于插入内容的末尾。

setSignatureAsync(data, options, callback)

如果项正文没有现有签名,则向项目正文添加签名。 如果正文中已有签名,则替换该签名。

setSignatureAsync(data, callback)

如果项正文没有现有签名,则向项目正文添加签名。 如果正文中已有签名,则替换该签名。

方法详细信息

appendOnSendAsync(data, options, callback)

在任何签名之后,将指定内容发送到项目正文末尾时追加。

若要使用 appendOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 请参阅 了解 Outlook 外接程序权限。 若要了解有关end-on-send及其配置的详细信息,请参阅 在 Outlook 加载项中实现 append-on-send

appendOnSendAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

要添加到正文末尾的字符串。 字符串限制为 5,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。 coercionType :要追加的数据的所需格式。 参数中的字符串将转换为此格式。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.9 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将其返回的值传递给 options.coercionType 参数。

重要说明

  • 如果用户运行的加载项在清单中使用 实现 on-send 功能ItemSend,则 append-on-send 先运行 on-send 功能。

  • 如果加载项实现 on-send 功能并在处理程序中ItemSend调用appendOnSendAsync,则appendOnSendAsync调用将返回错误,因为此方案不受支持。

  • 若要清除上 appendOnSendAsync 一次调用中的数据,可以再次调用,并将 data 参数设置为 null

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 appendOnSendAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 5,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,但消息正文为纯文本。

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/append-text-on-send.yaml

// This snippet appends text to the end of the message or appointment's body once it's sent.
const text = $("#text-field").val();

// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the appendOnSendAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log("Action failed with error: " + asyncResult.error.message);
    return;
  }

  const bodyFormat = asyncResult.value;
  Office.context.mailbox.item.body.appendOnSendAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
      console.log("Action failed with error: " + asyncResult.error.message);
      return;
    }

    console.log(`"${text}" will be appended to the body once the message or appointment is sent. Send the mail item to test this feature.`);
  });
});

appendOnSendAsync(data, callback)

在任何签名之后,将指定内容发送到项目正文末尾时追加。

若要使用 appendOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 请参阅 了解 Outlook 外接程序权限。 若要了解有关end-on-send及其配置的详细信息,请参阅 在 Outlook 加载项中实现 append-on-send

appendOnSendAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

要添加到正文末尾的字符串。 字符串限制为 5,000 个字符。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.9 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将其返回的值传递给 options.coercionType 参数。

重要说明

  • 如果用户运行的加载项在清单中使用 实现 on-send 功能ItemSend,则 append-on-send 先运行 on-send 功能。

  • 如果加载项实现 on-send 功能并在处理程序中ItemSend调用appendOnSendAsync,则appendOnSendAsync调用将返回错误,因为此方案不受支持。

  • 若要清除上 appendOnSendAsync 一次调用中的数据,可以再次调用,并将 data 参数设置为 null

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 appendOnSendAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 5,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,但消息正文为纯文本。

getAsync(coercionType, options, callback)

使用指定的格式返回当前正文。

此方法以 指定的 coercionType格式返回整个当前正文。

getAsync(coercionType: Office.CoercionType | string, options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;

参数

coercionType

Office.CoercionType | string

用于返回的正文的格式。

options
Office.AsyncContextOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。

callback

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

可选。 方法完成后,使用 Office.AsyncResult 类型的单个参数调用在 参数中 callback 传递的函数。 正文在 属性中以请求的格式 asyncResult.value 提供。

返回

void

注解

[ API 集:邮箱 1.3 ]

最低权限级别读取项

适用的 Outlook 模式:Compose或读取

重要说明

  • 使用 HTML 格式的正文时,请务必注意,方法返回 Body.getAsync 的值不一定与之前在 方法中 Body.setAsync 传递的值完全相同。 客户端可以修改传递给 setAsync 的值,使其通过其呈现引擎高效呈现。

  • 在 Outlook 网页版 和新 Outlook on Windows 中,如果正文包含带格式的元素(如表、列表和链接),请在调用中getAsync指定Office.CoercionType.Html。 否则,可能会收到意外值,例如空字符串。

示例

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

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

getAsync(coercionType, callback)

使用指定的格式返回当前正文。

此方法以 指定的 coercionType格式返回整个当前正文。

getAsync(coercionType: Office.CoercionType | string, callback?: (asyncResult: Office.AsyncResult<string>) => void): void;

参数

coercionType

Office.CoercionType | string

用于返回的正文的格式。

callback

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

可选。 方法完成后,使用 Office.AsyncResult 类型的单个参数调用在 参数中 callback 传递的函数。 正文在 属性中以请求的格式 asyncResult.value 提供。

返回

void

注解

[ API 集:邮箱 1.3 ]

最低权限级别读取项

适用的 Outlook 模式:Compose或读取

重要说明

  • 使用 HTML 格式的正文时,请务必注意,方法返回 Body.getAsync 的值不一定与之前在 方法中 Body.setAsync 传递的值完全相同。 客户端可以修改传递给 setAsync 的值,使其通过其呈现引擎高效呈现。

  • 在 Outlook 网页版 和新 Outlook on Windows 中,如果正文包含带格式的元素(如表、列表和链接),请在调用中getAsync指定Office.CoercionType.Html。 否则,可能会收到意外值,例如空字符串。

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/add-inline-base64-image.yaml

const mailItem = Office.context.mailbox.item;
const base64String =
  "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN0S+bUAAAAMdFJOUwAQIDBAUI+fr7/P7yEupu8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVGhD7dfLdoMwDEVR6Cspzf9/b20QYOthS5Zn0Z2kVdY6O2WULrFYLBaLxd5ur4mDZD14b8ogWS/dtxV+dmx9ysA2QUj9TQRWv5D7HyKwuIW9n0vc8tkpHP0W4BOg3wQ8wtlvA+PC1e8Ao8Ld7wFjQtHvAiNC2e8DdqHqKwCrUPc1gE1AfRVgEXBfB+gF0lcCWoH2tYBOYPpqQCNwfT3QF9i+AegJfN8CtAWhbwJagtS3AbIg9o2AJMh9M5C+SVGBvx6zAfmT0r+Bv8JMwP4kyFPir+cswF5KL3WLv14zAFBCLf56Tw9cparFX4upgaJUtPhrOS1QlY5W+vWTXrGgBFB/b72ev3/0igUdQPppP/nfowfKUUEFcP207y/yxKmgAYQ+PywoAFOfCH3A2MdCFzD3kdADBvq10AGG+pXQBgb7pdAEhvuF0AIc/VtoAK7+JciAs38KIuDugyAC/v4hiMCE/i7IwLRBsh68N2WQjMVisVgs9i5bln8LGScNcCrONQAAAABJRU5ErkJggg==";

// Get the current body of the message or appointment.
mailItem.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
  if (bodyResult.status === Office.AsyncResultStatus.Succeeded) {
    // Insert the Base64-encoded image to the beginning of the body.
    const options = { isInline: true, asyncContext: bodyResult.value };
    mailItem.addFileAttachmentFromBase64Async(base64String, "sample.png", options, (attachResult) => {
      if (attachResult.status === Office.AsyncResultStatus.Succeeded) {
        let body = attachResult.asyncContext;
        body = body.replace("<p class=MsoNormal>", `<p class=MsoNormal><img src="cid:sample.png">`);

        mailItem.body.setAsync(body, { coercionType: Office.CoercionType.Html }, (setResult) => {
          if (setResult.status === Office.AsyncResultStatus.Succeeded) {
            console.log("Inline Base64-encoded image added to the body.");
          } else {
            console.log(setResult.error.message);
          }
        });
      } else {
        console.log(attachResult.error.message);
      }
    });
  } else {
    console.log(bodyResult.error.message);
  }
});

getTypeAsync(options, callback)

获取一个值,该值指示内容采用 HTML 格式还是文本格式。

getTypeAsync(options: Office.AsyncContextOptions, callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

参数

options
Office.AsyncContextOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 内容类型作为 属性中的CoercionTypeasyncResult.value值之一返回。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读取项

适用的 Outlook 模式:Compose

重要提示:在 Android 版 Outlook 和 iOS 版中,邮件Compose模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/get-body-format.yaml

// Get the mail item's body format (plain text or HTML) and log it to the console.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log("Action failed with error: " + asyncResult.error.message);
    return;
  }

  console.log("Body format: " + asyncResult.value);
});

getTypeAsync(callback)

获取一个值,该值指示内容采用 HTML 格式还是文本格式。

getTypeAsync(callback?: (asyncResult: Office.AsyncResult<Office.CoercionType>) => void): void;

参数

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 内容类型作为 属性中的CoercionTypeasyncResult.value值之一返回。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读取项

适用的 Outlook 模式:Compose

重要提示:在 Android 版 Outlook 和 iOS 版中,邮件Compose模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

prependAsync(data, options, callback)

将指定内容添加到项目正文开头。

prependAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将插入到正文开头的字符串。 字符串大小限制为 1,000,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。 coercionType :正文的所需格式。 参数中的字符串将转换为此格式。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将返回的值传递给 options.coercionType 参数。

重要说明

  • 在内容预置后,游标的位置取决于加载项运行的客户端。 在 Outlook 网页版 和 Windows () 和经典) 中,光标位置在正文的预先存在内容中保持不变。 例如,如果光标在调用之前 prependAsync 位于正文的开头,则它将在调用后预先添加的内容和正文的预先存在内容之间显示。 在 Outlook on Mac 中,不会保留光标位置。 光标在调用后消失, prependAsync 仅在用户选择邮件项目正文中的某些内容时重新出现。

  • 使用 HTML 格式的正文时,请务必注意,客户端可以修改传递给 prependAsync 的值,使其通过其呈现引擎高效呈现。 这意味着,在 Mailbox 1.3) 中引入的方法的后续调用 Body.getAsync (返回的值不一定包含上 prependAsync 一次调用中传递的确切值。

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 在 Outlook on Android 和 iOS 中,“邮件Compose”模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 prependAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :数据参数长度超过 1,000,000 个字符。

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/prepend-text-to-item-body.yaml

/* This snippet adds text to the beginning of the message or appointment's body. 
  
  When prepending a link in HTML markup to the body, you can disable the online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();

// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log("Action failed with error: " + asyncResult.error.message);
    return;
  }

  const bodyFormat = asyncResult.value;
  Office.context.mailbox.item.body.prependAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
      console.log("Action failed with error: " + asyncResult.error.message);
      return;
    }

    console.log(`"${text}" prepended to the body.`);
  });
});

prependAsync(data, callback)

将指定内容添加到项目正文开头。

prependAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将插入到正文开头的字符串。 字符串大小限制为 1,000,000 个字符。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将返回的值传递给 options.coercionType 参数。

重要说明

  • 在内容预置后,游标的位置取决于加载项运行的客户端。 在 Outlook 网页版 和 Windows () 和经典) 中,光标位置在正文的预先存在内容中保持不变。 例如,如果光标在调用之前 prependAsync 位于正文的开头,则它将在调用后预先添加的内容和正文的预先存在内容之间显示。 在 Outlook on Mac 中,不会保留光标位置。 光标在调用后消失, prependAsync 仅在用户选择邮件项目正文中的某些内容时重新出现。

  • 使用 HTML 格式的正文时,请务必注意,客户端可以修改传递给 prependAsync 的值,使其通过其呈现引擎高效呈现。 这意味着,在 Mailbox 1.3) 中引入的方法的后续调用 Body.getAsync (返回的值不一定包含上 prependAsync 一次调用中传递的确切值。

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 在 Outlook on Android 和 iOS 中,“邮件Compose”模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 prependAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :数据参数长度超过 1,000,000 个字符。

prependOnSendAsync(data, options, callback)

发送邮件项目时,将 HTML 或纯文本预置到邮件或约会正文的开头。

若要使用 prependOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 有关指导,请参阅 了解 Outlook 外接程序权限

prependOnSendAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

要附加到邮件或约会正文开头的字符串。 字符串限制为 5,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

一个对象文本,它包含以下一个或多个属性:- asyncContext:可在回调函数中访问的任何对象。 coercionType :正文的所需格式。 参数中的 data 字符串将转换为此格式。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.13 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将其返回的值传递给 options.coercionType 参数。

重要说明:实现 prependOnSendAsync时,请记住以下几点。

  • 智能警报加载项中,发送前附加功能首先运行。

  • 在前面附加的内容后面添加了一个新行。

  • 如果多个活动加载项调用 prependOnSendAsync,则插入内容的顺序取决于外接程序的运行顺序。 上次运行加载项的内容显示在前面附加的内容上方。

  • 如果外接程序尝试在纯文本正文中插入 HTML,则内容不会在前面添加。 相反,纯文本将插入 HTML 正文。

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 prependOnSendAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 超过 5,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html,但项目正文采用纯文本格式。

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/prepend-text-on-send.yaml

// This snippet prepends text to the beginning of the message or appointment's body once it's sent.
const text = $("#text-field").val().toString();

// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependOnSendAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log("Action failed with error: " + asyncResult.error.message);
    return;
  }

  const bodyFormat = asyncResult.value;
  Office.context.mailbox.item.body.prependOnSendAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
      console.log("Action failed with error: " + asyncResult.error.message);
      return;
    }

    console.log(`"${text}" will be prepended to the body once the message or appointment is sent. Send the mail item to test this feature.`);
  });
});

prependOnSendAsync(data, callback)

发送邮件项目时,将 HTML 或纯文本预置到邮件或约会正文的开头。

若要使用 prependOnSendAsync,必须在清单中指定补充权限。 详细信息因清单类型而异。 有关指导,请参阅 了解 Outlook 外接程序权限

prependOnSendAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

要附加到邮件或约会正文开头的字符串。 字符串限制为 5,000 个字符。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.13 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将其返回的值传递给 options.coercionType 参数。

重要说明:实现 prependOnSendAsync时,请记住以下几点。

  • 智能警报加载项中,发送前附加功能首先运行。

  • 在前面附加的内容后面添加了一个新行。

  • 如果多个活动加载项调用 prependOnSendAsync,则插入内容的顺序取决于外接程序的运行顺序。 上次运行加载项的内容显示在前面附加的内容上方。

  • 如果外接程序尝试在纯文本正文中插入 HTML,则内容不会在前面添加。 相反,纯文本将插入 HTML 正文。

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 prependOnSendAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 超过 5,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html,但项目正文采用纯文本格式。

setAsync(data, options, callback)

将整个正文替换为指定的文本。

setAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将替换现有正文的字符串。 字符串限制为 1,000,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。 coercionType :正文的所需格式。 参数中的字符串将转换为此格式。

callback

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

可选。 方法完成后,使用 Office.AsyncResult 类型的单个参数调用在 参数中 callback 传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API 集:邮箱 1.3 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将返回的值传递给 options.coercionType 参数。

重要说明

  • 将正文替换为指定内容后,光标的位置取决于加载项运行的客户端。 在经典 Outlook on Windows 中,光标显示在邮件项目正文的开头。 在Outlook 网页版和新的 Outlook on Windows 中,光标显示在邮件项目正文的末尾。 在 Outlook on Mac 中,不会保留光标位置。 光标在调用后消失, prependAsync 仅在用户选择邮件项目正文中的某些内容时重新出现。

  • 使用 HTML 格式的正文时,请务必注意,方法返回 Body.getAsync 的值不一定与之前在 方法中 Body.setAsync 传递的值完全相同。 客户端可以修改传递给 setAsync 的值,使其通过其呈现引擎高效呈现。

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 在 Outlook on Windows 和 Mac 中,加载项用户无法使用“撤消”命令还原此操作。

  • 在 Outlook on Android 和 iOS 中,“邮件Compose”模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :数据参数长度超过 1,000,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。

示例

// When including links in HTML markup, you can disable online link preview
// by setting the id attribute on the anchor (<a>) to "LPNoLP".
Office.context.mailbox.item.body.setAsync(
    '<a id="LPNoLP" href="http://www.contoso.com">Click here!</a>',
    { 
        coercionType: Office.CoercionType.Html,
        asyncContext: "This is passed to the callback"
    },
    (result) => {
        // Process the result.
    }
);

// The following is an example of the result parameter passed to the callback function.
{
    "value": null,
    "status": "succeeded",
    "asyncContext": "This is passed to the callback"
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/add-inline-base64-image.yaml

const mailItem = Office.context.mailbox.item;
const base64String =
  "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN0S+bUAAAAMdFJOUwAQIDBAUI+fr7/P7yEupu8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF8SURBVGhD7dfLdoMwDEVR6Cspzf9/b20QYOthS5Zn0Z2kVdY6O2WULrFYLBaLxd5ur4mDZD14b8ogWS/dtxV+dmx9ysA2QUj9TQRWv5D7HyKwuIW9n0vc8tkpHP0W4BOg3wQ8wtlvA+PC1e8Ao8Ld7wFjQtHvAiNC2e8DdqHqKwCrUPc1gE1AfRVgEXBfB+gF0lcCWoH2tYBOYPpqQCNwfT3QF9i+AegJfN8CtAWhbwJagtS3AbIg9o2AJMh9M5C+SVGBvx6zAfmT0r+Bv8JMwP4kyFPir+cswF5KL3WLv14zAFBCLf56Tw9cparFX4upgaJUtPhrOS1QlY5W+vWTXrGgBFB/b72ev3/0igUdQPppP/nfowfKUUEFcP207y/yxKmgAYQ+PywoAFOfCH3A2MdCFzD3kdADBvq10AGG+pXQBgb7pdAEhvuF0AIc/VtoAK7+JciAs38KIuDugyAC/v4hiMCE/i7IwLRBsh68N2WQjMVisVgs9i5bln8LGScNcCrONQAAAABJRU5ErkJggg==";

// Get the current body of the message or appointment.
mailItem.body.getAsync(Office.CoercionType.Html, (bodyResult) => {
  if (bodyResult.status === Office.AsyncResultStatus.Succeeded) {
    // Insert the Base64-encoded image to the beginning of the body.
    const options = { isInline: true, asyncContext: bodyResult.value };
    mailItem.addFileAttachmentFromBase64Async(base64String, "sample.png", options, (attachResult) => {
      if (attachResult.status === Office.AsyncResultStatus.Succeeded) {
        let body = attachResult.asyncContext;
        body = body.replace("<p class=MsoNormal>", `<p class=MsoNormal><img src="cid:sample.png">`);

        mailItem.body.setAsync(body, { coercionType: Office.CoercionType.Html }, (setResult) => {
          if (setResult.status === Office.AsyncResultStatus.Succeeded) {
            console.log("Inline Base64-encoded image added to the body.");
          } else {
            console.log(setResult.error.message);
          }
        });
      } else {
        console.log(attachResult.error.message);
      }
    });
  } else {
    console.log(bodyResult.error.message);
  }
});

setAsync(data, callback)

将整个正文替换为指定的文本。

setAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将替换现有正文的字符串。 字符串限制为 1,000,000 个字符。

callback

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

可选。 方法完成后,使用 Office.AsyncResult 类型的单个参数调用在 参数中 callback 传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API 集:邮箱 1.3 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync,然后将返回的值传递给 options.coercionType 参数。

重要说明

  • 将正文替换为指定内容后,光标的位置取决于加载项运行的客户端。 在经典 Outlook on Windows 中,光标显示在邮件项目正文的开头。 在Outlook 网页版和新的 Outlook on Windows 中,光标显示在邮件项目正文的末尾。 在 Outlook on Mac 中,不会保留光标位置。 光标在调用后消失, prependAsync 仅在用户选择邮件项目正文中的某些内容时重新出现。

  • 使用 HTML 格式的正文时,请务必注意,方法返回 Body.getAsync 的值不一定与之前在 方法中 Body.setAsync 传递的值完全相同。 客户端可以修改传递给 setAsync 的值,使其通过其呈现引擎高效呈现。

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 在 Outlook on Windows 和 Mac 中,加载项用户无法使用“撤消”命令还原此操作。

  • 在 Outlook on Android 和 iOS 中,“邮件Compose”模式不支持此方法。 仅支持约会组织者模式。 有关 Outlook mobile 中支持的 API 的详细信息,请参阅移动设备上的 Outlook 中支持的 Outlook JavaScript API

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :数据参数长度超过 1,000,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。

setSelectedDataAsync(data, options, callback)

将正文中的所选内容更换为指定文本。

setSelectedDataAsync 方法将指定的字符串插入项目正文中的光标位置,或者,如果在编辑器中选定了文本,它就会替换所选文本。 如果光标从未出现在项目正文中,或者如果该项目的正文不关注 UI,该字符串将插入到正文内容的顶部。 插入后,光标将置于插入内容的末尾。

setSelectedDataAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将替换现有正文的字符串。 字符串限制为 1,000,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。 coercionType :正文的所需格式。 参数中的字符串将转换为此格式。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync ,然后将返回的值传递给 options.coercionType 参数。

* 重要说明

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setSelectedDataAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 1,000,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/20-item-body/replace-selected-text.yaml

/* This snippet replaces selected text in a message or appointment's body with specified text.
  
  If you want to use a link in HTML markup as a value of the setSelectedDataAsync call's data parameter, you can disable online link preview by setting the anchor tag's id attribute to "LPNoLP". For example, '<a id="LPNoLP" href="https://www.contoso.com">Click here!</a>'.
*/
const text = $("#text-field").val().toString();

// It's recommended to call getTypeAsync and pass its returned value to the options.coercionType parameter of the prependAsync call.
Office.context.mailbox.item.body.getTypeAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log("Action failed with error: " + asyncResult.error.message);
    return;
  }

  const bodyFormat = asyncResult.value;
  Office.context.mailbox.item.body.setSelectedDataAsync(text, { coercionType: bodyFormat }, (asyncResult) => {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
      console.log("Action failed with error: " + asyncResult.error.message);
      return;
    }

    console.log(`Replaced selected text with "${text}".`);
  });
});

setSelectedDataAsync(data, callback)

将正文中的所选内容更换为指定文本。

setSelectedDataAsync 方法将指定的字符串插入项目正文中的光标位置,或者,如果在编辑器中选定了文本,它就会替换所选文本。 如果光标从未出现在项目正文中,或者如果该项目的正文不关注 UI,该字符串将插入到正文内容的顶部。 插入后,光标将置于插入内容的末尾。

setSelectedDataAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

将替换现有正文的字符串。 字符串限制为 1,000,000 个字符。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。 asyncResult.error 属性中将提供遇到的所有错误。

返回

void

注解

[ API set: Mailbox 1.1 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

建议:调用 getTypeAsync ,然后将返回的值传递给 options.coercionType 参数。

* 重要说明

  • 在 HTML 标记中包含链接时,可以通过将定位点上的 属性 (<>) 设置为id“LPNoLP”来禁用联机链接预览, (有关示例) ,请参阅示例部分。

  • 不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setSelectedDataAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 1,000,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。

setSignatureAsync(data, options, callback)

如果项正文没有现有签名,则向项目正文添加签名。 如果正文中已有签名,则替换该签名。

setSignatureAsync(data: string, options: Office.AsyncContextOptions & CoercionTypeOptions, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

表示在邮件正文中设置的签名的字符串。 此字符串限制为 30,000 个字符。

options

Office.AsyncContextOptions & Office.CoercionTypeOptions

包含以下一个或多个属性的对象文本:- asyncContext:开发人员可以在回调函数中提供他们想要访问的任何对象。 coercionType :签名应设置为的格式。 如果为 Text,则 该方法将签名设置为纯文本,从而删除存在的所有 HTML 标记。 如果为 Html,则 方法将签名设置为 HTML。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。

返回

void

注解

[ API set: Mailbox 1.10 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

重要说明

  • 在 Outlook 网页版 和新的 Outlook on Windows 中,setSignatureAsync仅适用于邮件。

  • 从版本 4.2352.0 开始,Android 版 Outlook 和 iOS 上的 Message Compose 支持此方法。 有关示例方案,请参阅在 Outlook 移动加载项中实现基于事件的激活。若要详细了解 Outlook 移动版支持的 API,请参阅移动设备上 Outlook 支持的 Outlook JavaScript API

  • 如果在使用清单中的 LaunchEvent 实现基于事件的激活功能的外接程序的事件处理程序中调用它,则 行为setSignatureAsync会有所不同。 当用户撰写新项目 (包括答复或转发) 时,将设置签名,但不会修改表单。 这意味着,如果用户关闭窗体而不进行其他编辑,则不会提示他们保存更改。

  • 邮件签名不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setSignatureAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 30,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。

示例

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

// 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}`);
    }
  }
);

...

// Set the signature for the current item.
const signature = $("#signature").val();
console.log(`Setting signature to "${signature}".`);
Office.context.mailbox.item.body.setSignatureAsync(signature, function(asyncResult) {
  if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
    console.log("setSignatureAsync succeeded");
  } else {
    console.error(asyncResult.error);
  }
});

setSignatureAsync(data, callback)

如果项正文没有现有签名,则向项目正文添加签名。 如果正文中已有签名,则替换该签名。

setSignatureAsync(data: string, callback?: (asyncResult: Office.AsyncResult<void>) => void): void;

参数

data

string

表示在邮件正文中设置的签名的字符串。 此字符串限制为 30,000 个字符。

callback

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

可选。 方法完成后,使用类型的Office.AsyncResult单个参数调用在 参数中callback传递的函数。

返回

void

注解

[ API set: Mailbox 1.10 ]

最低权限级别读/写项

适用的 Outlook 模式:Compose

重要说明

  • 在 Outlook 网页版 和新的 Outlook on Windows 中,setSignatureAsync仅适用于邮件。

  • 从版本 4.2352.0 开始,Android 版 Outlook 和 iOS 上的 Message Compose 支持此方法。 有关示例方案,请参阅在 Outlook 移动加载项中实现基于事件的激活。若要详细了解 Outlook 移动版支持的 API,请参阅移动设备上 Outlook 支持的 Outlook JavaScript API

  • 如果在使用清单中的 LaunchEvent 实现基于事件的激活功能的外接程序的事件处理程序中调用它,则 行为setSignatureAsync会有所不同。 当用户撰写新项目 (包括答复或转发) 时,将设置签名,但不会修改表单。 这意味着,如果用户关闭窗体而不进行其他编辑,则不会提示他们保存更改。

  • 邮件签名不支持 SVG 文件。 请改用 JPG 或 PNG 文件。

  • 方法 setSignatureAsync 不支持内联 CSS。 请改用内部或外部 CSS。

错误

  • DataExceedsMaximumSize :参数 data 长度超过 30,000 个字符。

  • InvalidFormatError :参数 options.coercionType 设置为 Office.CoercionType.Html ,消息正文为纯文本。