求助:开发Google Docs标签间邮箱提取与批量邮件发送脚本
提取Google Docs中的邮箱并自动发送文档
实现方案(基于Google Apps Script)
直接用Google官方的脚本工具就能完成需求,核心流程是遍历目标文件夹的Docs文档、提取标签内的邮箱、发送文档到对应地址。
完整可运行代码
function sendDocsToRecipients() { // 替换为你的目标文件夹ID(从文件夹URL中获取) const folderId = "YOUR_FOLDER_ID"; const targetFolder = DriveApp.getFolderById(folderId); const docFiles = targetFolder.getFilesByType(MimeType.GOOGLE_DOCS); // 遍历所有Google Docs文档 while (docFiles.hasNext()) { const currentFile = docFiles.next(); const doc = DocumentApp.openById(currentFile.getId()); const docContent = doc.getBody().getText(); // 提取<<>>包裹的邮箱地址 const emailRegex = /<<(\S+@\S+\.\S+)>>/; const emailMatch = docContent.match(emailRegex); if (emailMatch && emailMatch[1]) { const recipientEmail = emailMatch[1].trim(); const mailSubject = `您的文档:${currentFile.getName()}`; const mailBody = "您好,所需文档已附在邮件中,请查收。"; try { // 发送邮件,附带PDF格式的文档附件 MailApp.sendEmail({ to: recipientEmail, subject: mailSubject, body: mailBody, attachments: [currentFile.getAs(MimeType.PDF).setName(`${currentFile.getName()}.pdf`)] }); console.log(`成功发送文档 ${currentFile.getName()} 至 ${recipientEmail}`); } catch (error) { console.error(`发送文档 ${currentFile.getName()} 失败:${error.message}`); } } else { console.warn(`文档 ${currentFile.getName()} 未找到有效邮箱地址`); } } }
关键细节解析
1. 邮箱提取逻辑
用正则表达式 /<<(\S+@\S+\.\S+)>>/ 精准捕获标签内的邮箱:
<<和>>匹配标签的固定边界(\S+@\S+\.\S+)捕获中间的邮箱内容:\S+匹配邮箱的用户名和域名部分(非空白字符)@匹配邮箱的@分隔符\.\S+匹配域名后缀(如.com、.org等)
emailMatch[1]就是去掉标签后的纯邮箱地址
2. 脚本使用步骤
- 打开Google Apps Script平台,创建新的脚本项目
- 替换代码中的
YOUR_FOLDER_ID(从文件夹URL的https://drive.google.com/drive/folders/[此处为ID]复制) - 运行脚本,首次运行需完成权限授权(按页面提示操作即可)
- 可选:设置定时触发器,让脚本自动定期执行任务
3. 扩展选项
- 若文档中有多个邮箱,改用
matchAll方法遍历所有匹配结果:const matches = docContent.matchAll(emailRegex); for (const match of matches) { const recipient = match[1].trim(); // 执行发送逻辑 } - 若需发送Google Docs原生链接而非PDF附件,可添加文档共享权限并在邮件中插入链接:
// 设置文档为收件人可查看 currentFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); const docLink = currentFile.getUrl(); // 在邮件body中添加链接:`文档在线链接:${docLink}`
内容的提问来源于stack exchange,提问作者alecanc
相关产品推荐
相关产品推荐

