在 Outlook 中撰写约会或邮件时获取或设置主题

Office JavaScript API 提供异步方法 (subject.getAsyncsubject.setAsync) 来获取和设置用户正在撰写的约会或邮件的主题。 这些异步方法仅适用于撰写加载项。若要使用这些方法,请确保已为 Outlook 适当设置了仅加载项清单,以 激活撰写表单中的加载项

属性 subject 可用于撰写和阅读约会和邮件的阅读形式。 在读取窗体中,直接从父对象访问 属性,如:

Office.context.mailbox.item.subject;

但在撰写窗体中,由于用户和加载项可以同时插入或更改主题,因此必须使用 getAsync 方法异步获取主题。

Office.context.mailbox.item.subject.getAsync(callback);

属性 subject 仅在撰写窗体中可用于写入访问,而不适用于读取窗体。

提示

若要在阅读模式下暂时设置邮件主题中显示的内容,请使用 Office.context.mailbox.item.display.subject (预览)

与 Office JavaScript API 中的大多数异步方法一样, getAsync 采用 setAsync 可选的输入参数。 有关如何指定这些可选输入参数的详细信息,请参阅 Office 外接程序中的异步编程中的“将可选参数传递给异步方法”。

获取主题

本节演示获取用户正在撰写的约会或邮件的主题并显示主题的代码示例。

若要使用 item.subject.getAsync,请提供一个回调函数,用于检查异步调用的状态和结果。 可以通过可选 asyncContext 参数向回调函数提供任何必要的参数。 若要从回调函数获取状态、结果和任何错误,请使用 asyncResult 回调的输出参数。 如果异步调用成功,请使用 AsyncResult.value 属性获取主题作为纯文本字符串。

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        getSubject();
    }
});

// Gets the subject of the item that the user is composing.
function getSubject() {
    item.subject.getAsync((asyncResult) => {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            write(asyncResult.error.message);
            return;
        }

        // Display the subject on the page.
        write(`The subject is: ${asyncResult.value}`);
    });
}


// Writes to a div with id="message" on the page.
function write(message) {
    document.getElementById("message").innerText += message; 
}

设置主题

本节演示设置用户正在撰写的约会或邮件的主题的代码示例。

若要使用 item.subject.setAsync,请在 参数中指定最多 255 个字符的 data 字符串。 (可选)可以在参数中 asyncContext 为回调函数提供回调函数和任何参数。 检查回调的输出参数中的 asyncResult 回调状态、结果和任何错误消息。 如果异步调用成功, setAsync 则以纯文本形式插入指定的主题字符串,覆盖该项目的任何现有主题。

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        setSubject();
    }
});

// Sets the subject of the item that the user is composing.
function setSubject() {
    // Customize the subject with today's date.
    const today = new Date();
    const subject = `Summary for ${today.toLocaleDateString()}`;

    item.subject.setAsync(
        subject,
        { asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
        (asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                write(asyncResult.error.message);
                return;
            }

            /*
              The subject was successfully set.
              Run additional operations appropriate to your scenario and
              use the optionalVariable1 and optionalVariable2 values as needed.
            */
        });
}

// Writes to a div with id="message" on the page.
function write(message) {
    document.getElementById("message").innerText += message; 
}

另请参阅