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

如何使用Google Script调用本地Outlook,在Google Sheets录入数据后预填邮件发送

实现方案

因为Google Apps Script运行在云端服务器,无法直接调用本地安装的Outlook客户端,最符合你公司政策的可行方案是采用mailto协议唤起本地默认邮件客户端(即你公司配置的Outlook),可直接预填收件人、邮件主题、正文内容,全程不会涉及文件上传到Google Drive的操作。

代码修改步骤

1. 修改Google Apps Script代码

调整addNewItem函数,完成数据写入表格后,返回需要预填的邮件相关参数:

function addNewItem(form_data)
{
  var sheet = SpreadsheetApp.getActive().getSheetByName('Quoting');
  // 写入数据到表格
  sheet.appendRow([form_data.first_name, form_data.last_name, form_data.email, form_data.Date]);

  // 构造邮件预填内容,可根据实际需求调整
  var emailParams = {
    to: form_data.email, // 这里替换为你需要的员工收件邮箱,示例用录入的报价人邮箱
    subject: encodeURIComponent(`报价通知:${form_data.first_name}项目`),
    body: encodeURIComponent(`
您好:
现将项目报价信息同步如下:
- 项目名称:${form_data.first_name}
- 建造商:${form_data.last_name}
- 报价人:${form_data.email}
- 截止日期:${form_data.Date}

请按需处理。
    `)
  }
  return emailParams;
}

2. 修改HTML表单的提交逻辑

调整原提交事件的异步处理逻辑,待服务端返回参数后再唤起Outlook、关闭对话框:

document.querySelector("#myform").addEventListener("submit", 
function(e)
{
  e.preventDefault();    //stop form from submitting
  // 异步调用服务端写入逻辑,成功后触发mailto唤起Outlook
  google.script.run
    .withSuccessHandler(function(params){
      // 构造mailto链接
      var mailtoUrl = `mailto:${params.to}?subject=${params.subject}&body=${params.body}`;
      // 唤起本地默认邮件客户端
      window.open(mailtoUrl);
      // 关闭对话框
      google.script.host.close();
    })
    .addNewItem(this);
}
);

注意事项

  • mailto协议本身有长度限制,常规纯文本正文内容都可以正常承载,完全满足普通通知类邮件的预填需求
  • 该方案不会上传任何文件到Google云端,附件可后续直接在Outlook中选择公司本地服务器上的文档添加,完全符合你公司的安全政策

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:54:01