【问题标题】:Google Apps Script, GMail, SpreadsheetsGoogle Apps 脚本、GMail、电子表格
【发布时间】:2016-12-08 20:14:11
【问题描述】:

我想要实现的目标:从 gmail 帐户中提取与标签“标签/子标签”中的特定标准“主题:包含此文本”匹配的电子邮件,并将该电子邮件的主题附加到列D 以及从 B 列收到该邮件时的时间戳。

到目前为止我所拥有的:它可以选择最近的电子邮件(例如设置为 5)并附加到 A 列。

   function parseEmailMessages(start) {

      start = start || 0;

      var threads = GmailApp.getUserLabelByName('Label/SubLabel').getThreads(start, 5);
      var sheet = SpreadsheetApp.getActiveSheet();

      for (var i = 0; i < threads.length; i++) {

        // Get the first email message of a threads
        var tmp,
          message = threads[i].getMessages()[0],
          subject = message.getSubject(),
          content = message.getPlainBody();

        // Get the plain text body of the email message
        // You may also use getRawContent() for parsing HTML

        // Implement Parsing rules using regular expressions
        if (content) {

          tmp = content.match(/Name:\s*([A-Za-z0-9\s]+)(\r?\n)/);
          var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No username';

          tmp = content.match(/Email:\s*([A-Za-z0-9@.]+)/);
          var email = (tmp && tmp[1]) ? tmp[1].trim() : 'No email';

          tmp = content.match(/Comments:\s*([\s\S]+)/);
          var comment = (tmp && tmp[1]) ? tmp[1] : 'No comment';

          sheet.getRange(sheet.getLastRow(), 3).setValues(test);
          //sheet.appendRow([subject]);

        } // End if

      } // End for loop
    }

【问题讨论】:

    标签: javascript google-apps-script google-sheets gmail


    【解决方案1】:

    您应该修改从 Gmail 中获取线程的方式:

      var threads = GmailApp.getUserLabelByName('Label/SubLabel').getThreads(start, 5);
    

    将其更改为:

      var threads = GmailApp.search('subject:(contains this text) label:Label-SubLabel', start, 5);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多