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

Excel Online(Office365)中Office Script发邮件方法及语言答疑

Office Script 发邮件问题解答

Office Script 开发语言说明

Office Script 采用 TypeScript 作为官方开发语言,脚本编辑器内置完整的TypeScript类型校验、智能提示能力,你在代码中写的workbook: ExcelScript.Workbook这类类型标注就是TypeScript的标准语法,编写完成的脚本会在运行时被编译为JavaScript在Excel Online的沙箱环境中执行。

原有代码报错原因

你写的代码无法运行核心有两个问题:

  • Office Script 运行在隔离沙箱中,没有内置你调用的Email.send()这类第三方SMTP库,也不支持直接引入外部npm包
  • 出于企业数据安全要求,Office Script 不允许硬编码邮箱账号、密码直接调用外部SMTP服务,这类操作会被环境直接拦截。

官方推荐的Excel Online发邮件方案是Office Script + Power Automate组合实现,不需要写SMTP调用逻辑,直接复用当前登录账号的Office 365 Outlook权限发件,稳定性和安全性都有保障。

可直接使用的实现代码与步骤

第一步:编写Office Script

将以下代码粘贴到Office Script编辑器中,保存脚本(命名比如读取邮件参数):

function main(workbook: ExcelScript.Workbook): MailParams {
  const currentSheet = workbook.getActiveWorksheet();
  
  // 从指定单元格读取邮件内容,统一转字符串避免类型匹配错误
  const toAddress = currentSheet.getRange("B2").getValue().toString().trim();
  const subject = currentSheet.getRange("C2").getValue().toString().trim();
  const body = currentSheet.getRange("E2").getValue().toString().trim();

  // 调试日志,运行脚本时可在控制台查看读取到的值
  console.log("收件人:", toAddress);
  console.log("主题:", subject);

  // 将读取到的参数返回给Power Automate
  return {
    recipient: toAddress,
    mailSubject: subject,
    mailContent: body
  }
}

// 定义返回参数的类型结构(TypeScript标准语法)
interface MailParams {
  recipient: string;
  mailSubject: string;
  mailContent: string;
}

第二步:配置Power Automate流

  • 打开Power Automate,创建新的即时云端流
  • 触发条件选择「运行从Excel中选中的脚本」,选择你保存在OneDrive for Business中的目标Excel文件,选中刚才保存的读取邮件参数脚本
  • 添加新操作:搜索「Office 365 Outlook」,选择「发送电子邮件(V2)」操作
  • 将脚本返回的recipient绑定到「收件人」字段,mailSubject绑定到「主题」字段,mailContent绑定到「正文」字段
  • 保存流后,在Excel Online中选中对应工作表直接运行流即可完成邮件发送,不需要额外输入账号密码。

注意:如果需要批量发送多封邮件,只需要修改脚本逻辑读取多行单元格数据,返回参数数组后在Power Automate中添加循环操作即可批量发件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:12:23