【问题标题】:Parsing Gmails and extracting Subject line into Google Spreadsheet解析 Gmail 并将主题行提取到 Google 电子表格中
【发布时间】:2018-07-30 12:02:38
【问题描述】:

我正在尝试创建一个通过 gmail 解析并提取专门标记的电子邮件的主题行并自动将数据导出到谷歌电子表格的代码。

var sheet = SpreadsheetApp.getActiveSheet();
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

function getEmails() {
  var label = GmailApp.getUserLabelByName("Reservation confirmed");
  var threads = label.getThreads();
  var row = 2;
  for (var i = 0; i < threads.length; i++) {
    var messages=threads[i].getMessages();
    for (var m=0; m < messages.length; m++) {   
      sheet.getRange(row,1).setValue(messages[m].getPlainBody());
      row++;
    }
  }
}

function onOpen() {
  var menuEntries = [ {name: "Load Emails", functionName: "getEmails"} ];
  spreadsheet.addMenu("Email", menuEntries);
}

这个当前的代码我有带标签的电子邮件的正文,但由于某种原因我不能改变它,所以它只需要主题行。

【问题讨论】:

标签: javascript gmail-api google-spreadsheet-api


【解决方案1】:

对消息使用getSubject() 函数:

for (var m=0; m < messages.length; m++) {   
  sheet.getRange(row,1).setValue(messages[m].getSubject());
  row++;
}

【讨论】:

  • 谢谢!那么是否可以从主题行中获取特定信息?比如日期举例
  • @MichaelWatanabe 没问题!我不太确定我明白你的意思。如果你想知道消息的发送日期,你可以改用getDate()
  • 我实际上的意思更像是如果我可以提取 2 月 25 日,主题行类似于“已确认 2 月 25 日的预订”。
  • @MichaelWatanabe 好的。这完全是另一个问题,但this answer 可能会给您一些启发。
【解决方案2】:

您可以将整个主题转储到工作表中的另一列中,然后使用公式提取日期,如下所示:

=Right('cell reference',(Len('cell reference')-FIND("confirmed for ",'把你的cell reference放在这里'))-13)

【讨论】:

    猜你喜欢
    • 2021-07-04
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多