如何将Gmail中的电子邮件中的联系人姓名导入Google表格?

时间:2017-10-02 10:36:13

标签: google-apps-script google-sheets

我继承了Google表格中使用的Google应用脚本(见下文),可使用Gmail搜索标签导入电子邮件数据。该脚本在某种程度上起作用,但无法从电子邮件中提取第一个和第二个名称。

我搜索了GmailApp documentation,但我找不到任何关于导入名称的信息,只有他们的电子邮件地址。我知道这个脚本曾经能够提取名称,所以谷歌删除了这个功能还是我错过了什么?

function onOpen() {   
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var clear = [ {name:"Clear Sheet", functionName: "clearSheet"} ];
 var menu = [ {name: "Import selected emails", functionName: 
"selectedEmails"},];   
 sheet.addMenu("Import Emails", menu);
 sheet.addMenu("Clear Sheet",clear);
 sheet.toast("To get started click on 'Import Emails' option on the 
menubar.", "Ready", 7);    
}

function selectedEmails(){

       var sheet = SpreadsheetApp.getActiveSpreadsheet();
       var query=Browser.inputBox("Enter your Gmail search query","",Browser.Buttons.OK_CANCEL);           
       var lastEntry=2;
       var oldPercentage=0;
       if(query!="" && query!="cancel"){

       var threads = GmailApp.search(query);

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

          var messages = threads[i].getMessages(); 

          for (var j = 0; j < messages.length; j++) {

            var subject = messages[j].getSubject();
            var student_num = studentNum(subject);

            sheet.getRange("A"+lastEntry).setValue(student_num);  
            sheet.getRange("B"+lastEntry).setFormula("vlookup(A" + lastEntry + ",ids!A:C,2,0)");
            sheet.getRange("B"+lastEntry).setValue(sheet.getRange("B"+lastEntry).getValue());
            sheet.getRange("C"+lastEntry).setFormula("vlookup(A" + lastEntry + ",ids!A:C,3,0)");
            sheet.getRange("C"+lastEntry).setValue(sheet.getRange("C"+lastEntry).getValue());
            sheet.getRange("D"+lastEntry).setValue(subject);

            if(i/threads.length*100-oldPercentage>4){
              oldPercentage=i/threads.length*100;
              sheet.toast(i/threads.length*100+"% completed", "In Progress", 3);
            }

             lastEntry+=1;

           }

       }

       sheet.autoResizeColumn(1);
       sheet.autoResizeColumn(2);
       sheet.autoResizeColumn(3);
       sheet.autoResizeColumn(4);
       sheet.autoResizeColumn(5);

       sheet.toast("Export completed successfully", "Done", 3); 
     }
}    


function clearSheet(){

//clear the used rows
var mysheet = SpreadsheetApp.getActiveSpreadsheet();  
var lastRow = mysheet.getLastRow();

/*
if(lastRow>0){
  mysheet.insertRowAfter(lastRow);
  mysheet.getRange("A1:E"+lastRow).clear();
}
for(i=lastRow;i>0;i--){
  mysheet.deleteRow(i);  
}
*/
mysheet.deleteRows(2, LastRow);

//Initialize the header
mysheet.getRange("A1").setValue("ID");
mysheet.getRange("B1").setValue("Surname");
mysheet.getRange("C1").setValue("Forename");
mysheet.getRange("D1").setValue("Subject");
mysheet.getRange("E1").setValue("Result");
mysheet.getRange("A1:E1").setBackground("#bbed95");
mysheet.getRange("A1:E1").setFontSize(14);
mysheet.getRange("A1:E1").setHorizontalAlignment("center");
//Initialize the header

}

//function to extract Student Numbers
function studentNum(text){
  var pattern=/[0-9]{8}/;
  var snum = text.match(pattern)*1;
  return snum;
}

1 个答案:

答案 0 :(得分:1)

找到它。没有被称为我期望它被称为。

getFrom()

相关问题