You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Office.JS开发的Outlook加载项临时添加联系人至收件人字段

解决方案

你可以直接使用Office.js的撰写模式API实现这个需求,无需涉及联系人永久保存的操作——Office.context.mailbox.item.to.addAsync方法添加的收件人仅会出现在当前撰写的邮件中,不会被保存到用户的联系人列表里。

实现步骤与代码示例

  1. 确保加载项在撰写模式下可用:在加载项清单中配置合适的规则,仅在新建邮件的撰写场景激活加载项(比如设置Rule为ItemIs且ItemType为Message、FormType为Edit)。
  2. 调用API添加临时收件人:
// 假设你已获取到目标联系人数据,格式如下
const targetContacts = [
  { emailAddress: 'contact1@example.com', displayName: '王大锤' },
  { emailAddress: 'contact2@example.com', displayName: '李小花' }
];

function addToRecipients() {
  // 校验当前是否处于新建邮件的撰写模式
  const currentItem = Office.context.mailbox.item;
  if (currentItem.itemType === Office.MailboxEnums.ItemType.Message && currentItem.isNew) {
    // 异步添加收件人
    currentItem.to.addAsync(targetContacts, (asyncResult) => {
      if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
        console.log('收件人添加成功');
      } else {
        console.error('添加失败:', asyncResult.error.message);
      }
    });
  } else {
    console.error('仅支持在新建邮件的撰写模式下执行此操作');
  }
}

关键说明

  • addAsync方法接受的参数是包含emailAddress(必填)和displayName(可选)的对象数组,只要邮箱格式合法就能成功添加。
  • 该操作完全基于当前邮件上下文,不会对用户的联系人列表产生任何持久化修改。
  • 必须先判断当前场景是否为撰写模式,避免在阅读模式或已发送邮件场景下调用API导致错误。

内容的提问来源于stack exchange,提问作者Lior Asulin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:05:19