代码之家  ›  专栏  ›  技术社区  ›  Gabe

将电子邮件正文中空白处的数字拉入谷歌表单

  •  0
  • Gabe  · 技术社区  · 1 年前

    我试图将电子邮件正文的空白处之间的一个6位数字(身份验证码)拉入谷歌表单。“date、sender和subject”都在google表单中正确填充,但“body”正在填充 [Ljava.lang.Object;@6f90342a “。这是我的完整代码和电子邮件正文的截图。

     function getGmailEmails(){
          var input = ui.prompt('Label Name', 'Enter the label name that is assigned to your emails:', Browser.Buttons.OK_CANCEL);
          
          if (input.getSelectedButton() == ui.Button.CANCEL){
            return;
          }
          
          var label = GmailApp.getUserLabelByName(input.getResponseText().trim());
          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); //delete the label after getting the message    
          }  
        }
              function extractDetails(message){
              
              var emailData = {
                date: "Null",
                sender: "Null",
                subject: "Null",
                body: "Null",
              }
               regExp = /(\b(\d+)\b)/;
         
              emailData.date = message.getDate();
              emailData.subject = message.getSubject();
              emailData.sender = message.getFrom();
              main = message.getPlainBody();
              emailData.body = main.match(regExp);
      var activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      
      var emailDataArr = [];
      
      for(var propName in emailData){
        emailDataArr.push(emailData[propName]);
      }
      activeSheet.appendRow(emailDataArr);
    

    email body example and regexp

    1 回复  |  直到 1 年前
        1
  •  1
  •   Tanaike    1 年前

    在您的情况下,我认为您的问题是由于 main.match(regExp) 是一个数组。那么,下面的修改如何?

    发件人:

    emailData.body = main.match(regExp);
    

    收件人:

    var temp = main.match(regExp);
    emailData.body = temp ? temp[0] : ""; // I thought that temp[1] can be also used.
    

    参考号:

    match()