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

如何用脚本复制Google Doc内容并粘贴至Gmail收件人栏

需求背景
  • 存储邮箱列表的Google Doc内,所有邮箱按换行分隔,格式参考:
Email1@gmail.com
Email2@gmail.com
Email3@gmail.com
...
  • 核心目标:在账号所属环境下运行脚本,发信时可快速把文档内所有邮箱填入Gmail收件人栏
  • 方案优先级:优先使用Google Docs API实现,支持复制到剪贴板类的可行方案,不优先考虑终端输出类方案
  • 现有基础代码:已实现读取文档内容、按换行拆分后用逗号拼接的基础逻辑
function grabText() {
  const documentID = 'mydocumentid';
  return DocumentApp.openById(documentID).getBody().getText().split(/\n/).join(',');
}
可落地实现方案

方案1:文档内自定义菜单一键复制邮箱(适配现有代码,改动最小)

你写的grabText()已经完成了核心的邮箱格式转换,只需要补充自定义菜单、空行过滤、操作提示逻辑,就可以在打开存邮箱的文档时,一键把所有处理好的邮箱复制到剪贴板,切到Gmail写信页直接粘贴到收件人栏即可。
操作步骤:

  • 打开存储邮箱的Google Doc,点击顶部「扩展程序」-「Apps Script」进入脚本编辑页
  • 替换原有代码为以下内容,将代码中mydocumentid替换为你自己的文档ID
  • 保存脚本后首次运行按提示完成账号授权,重新打开文档后顶部会出现「邮箱工具」自定义菜单
// 文档打开时自动加载自定义菜单
function onOpen() {
  const ui = DocumentApp.getUi();
  ui.createMenu('邮箱工具')
    .addItem('复制所有邮箱到剪贴板', 'copyEmails')
    .addToUi();
}

function copyEmails() {
  const documentID = 'mydocumentid';
  // 读取内容、过滤空行/首尾空格,拼接为Gmail收件人识别的逗号分隔格式
  const emailList = DocumentApp.openById(documentID)
    .getBody()
    .getText()
    .split(/\n/)
    .map(item => item.trim())
    .filter(item => item);
  const emailStr = emailList.join(',');

  // 输出带复制功能的轻量弹窗,点击即可完成复制
  const copyHtml = `
    <div style="padding:16px;min-width:250px;">
      <p>已读取到${emailList.length}个邮箱地址,点击下方按钮即可复制:</p>
      <button onclick="navigator.clipboard.writeText('${emailStr}').then(()=>{document.getElementById('tip').innerText='复制成功,可直接粘贴到Gmail收件人栏'})" style="padding:8px 16px;cursor:pointer;">复制邮箱列表</button>
      <p id="tip" style="color:green;margin-top:12px;"></p>
    </div>
  `;
  DocumentApp.getUi().showModalDialog(HtmlService.createHtmlOutput(copyHtml), '邮箱复制工具');
}

使用提示:首次点击复制按钮时浏览器会请求剪贴板权限,选择允许即可,后续使用无需重复授权。

方案2:一键跳转Gmail写信页,自动填充所有收件人(无需复制粘贴)

如果想省去粘贴步骤,可以在上述菜单中新增一个选项,点击后直接打开Gmail写信页面,自动把所有邮箱填入收件人栏,直接写邮件内容即可发送。
只需要在onOpen的菜单配置里加一行菜单项,再补充对应函数:

// onOpen 内新增菜单项
// .addItem('打开预填收件人的Gmail写信页', 'openGmailCompose')

function openGmailCompose() {
  const documentID = 'mydocumentid';
  const emailStr = DocumentApp.openById(documentID)
    .getBody()
    .getText()
    .split(/\n/)
    .map(item => item.trim())
    .filter(item => item)
    .join(',');
  // 拼接Gmail官方写信链接,预填收件人参数
  const composeUrl = `https://mail.google.com/mail/?view=cm&fs=1&to=${encodeURIComponent(emailStr)}`;
  // 自动打开新标签页跳转
  const jumpHtml = `<script>window.open('${composeUrl}');google.script.host.close();</script>`;
  DocumentApp.getUi().showModalDialog(HtmlService.createHtmlOutput(jumpHtml).setWidth(1).setHeight(1), '正在跳转至Gmail...');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 06:24:30