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

使用Google Apps Script提取Gmail邮件数据到Google Sheets的实现问题

解决方案

核心实现逻辑为读取邮件正文内容,通过正则表达式匹配对应字段的取值后填充到目标对象,即可写入表格。原代码onOpen函数缺少UI实例定义的问题已同步修复。

完整修改后代码

function onOpen(e){  
    const ui = SpreadsheetApp.getUi();
    ui.createMenu("Tessa").addItem("Get Emails by Label", "getGmailEmails").addToUi();  
}

function getGmailEmails(){
  var label = GmailApp.getUserLabelByName("tobeprocessed");
  var threads = label.getThreads();
  
  for(var i = threads.length - 1; i >=0; i--){
    var messages = threads[i].getMessages();
    
    for (var j = 0; j <messages.length; j++){
      var message = messages[j];
      if (message.isUnread()){
        extractDetails(message);
        GmailApp.markMessageRead(message);
      }
    }
    threads[i].removeLabel(label);
  }
}

function extractDetails(message){
  var emailData = {
    Locatie: "Null",
    Score: "Null",
    Datum: "Null",
    Opmerking: "Null",
  }
  
  emailData.Datum = message.getDate();
  // 获取邮件纯文本正文
  const emailContent = message.getPlainBody();
  
  // 匹配Locatie字段
  const locatieMatch = emailContent.match(/Locatie\s*:\s*(.*?)(?=\r?\n|$)/i);
  if (locatieMatch) emailData.Locatie = locatieMatch[1].trim();
  
  // 匹配Score字段
  const scoreMatch = emailContent.match(/Score\s*:\s*(.*?)(?=\r?\n|$)/i);
  if (scoreMatch) emailData.Score = scoreMatch[1].trim();
  
  // 匹配Opmerking字段
  const opmerkingMatch = emailContent.match(/Opmerking\s*:\s*(.*?)(?=\r?\n|$)/i);
  if (opmerkingMatch) emailData.Opmerking = opmerkingMatch[1].trim();

  var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var emailDataArr = [];
  
  for(var propName in emailData){
    emailDataArr.push(emailData[propName]);
  }
  activeSheet.appendRow(emailDataArr);
}

字段匹配规则调整说明

如果你的邮件中字段格式和默认匹配规则不一致,可自行修改正则表达式的匹配前缀:

  • 若字段前没有冒号,可删除正则中的\s*:部分
  • 若邮件为HTML格式存在特殊标签,可将message.getPlainBody()替换为message.getBody(),再调整正则适配HTML标签结构
  • 若字段为中文名称,直接替换正则中的对应英文关键词即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:42:02