【问题标题】:How to import contact names from emails in Gmail to Google Sheets?如何将 Gmail 电子邮件中的联系人姓名导入 Google 表格?
【发布时间】:2017-10-02 10:36:13
【问题描述】:

我继承了 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;
}

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    找到了。没有像我期望的那样被称为。

    getFrom()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2020-10-19
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多