如果新联系人获得地址,主题,消息

时间:2017-03-02 18:23:15

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

我需要一个谷歌脚本程序,告诉我我的联系人中是否有电子邮件地址。

我每天都会收到很多来自供应商的电子邮件,其中很多都是全新的联系人。我需要一个只列出新联系人列表的程序,这样我就可以决定添加哪个联系人组。

我正在寻找的基本结构:

每5分钟运行一次这个程序(我可以设置它。)

-Checks emails with yellow or blue star for email address of recipient and sender. filters out my email address.

-Checks the email address against all my contacts. If the email address does not appear in my google contacts I need:

Email address, subject line, message text, additional thread message, additional thread message... in seperate columns in a spreadsheet.

然后我将手动查看这些信息,以决定将它们放入哪些组。

谢谢你的帮助!!!

UPDATE ////////////////////////////// update.3

这是我在的地方。这是在开和关。有一次我运行它有效,另一次它没有。真烦人如果有人能看到任何上釉的问题,请告诉我。特别难以得到if sndr和如果rcpnt返回false来运行程序的其余部分。我尝试了大约20种方法!!!

//http://webapps.stackexchange.com/questions/9813/get-e-mail-addresses-from-gmail-messages-received
/////////////NESTED LOOP METHOD





function newEmailAddressList(){

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheetByName("NewEmails");
 var range = sheet.getRange("A2:BA");
 var addrA;

 range.clearContent(); //May need to change this to my delete function to speed things up.

 var contact = ContactsApp.getContacts();

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

    var addrA = [];
    var start;
    var addresses = contact[i].getEmails();
    for(var j = 0;j < addresses.length;j++){



      addrA.push(addresses[j].getAddress()); 

    }; 

};
 sheet.getRange('H1').setValue("List Created");



 for (var i=0; i<50; i++){
 var threads = GmailApp.getInboxThreads(0,50)[i];
 var messages = threads.getMessages()[0];

      var sndr = messages.getFrom().replace(/^.+<([^>]+)>$/, "$1"); //http://stackoverflow.com/questions/26242591/is-there-a-way-to-get-the-specific-email-address-from-a-gmail-message-object-in
      var rcpnt = messages.getTo().replace(/^.+<([^>]+)>$/, "$1");


     function contains(addrA, sndr) {
    for (var i = 0; i < addrA.length; i++) {
        if (addrA[i] === sndr) {
            sheet.appendRow("Emails Match");
        }else{



      var dat = messages.getDate();
      //var sndr = messages.getFrom();
      //var rcpnt = messages.getTo();
      var sub = messages.getSubject();
      var msg = messages.getPlainBody();


      var info = [dat,sndr,rcpnt,sub,msg];

 sheet.appendRow(info); //appendRow only works with sheet class not range class

};

};

};

};

};

1 个答案:

答案 0 :(得分:0)

好吧,我会给你一个开始。并且保留我的信息,我以前从未真正使用过GmailApp,所以所有这些信息都可以通过任何打开代码编辑器点击帮助然后点击API参考的人随时获取。您需要了解的有关Google Scripts的所有信息都是在那里组织的,以及它曾经有过的。自从几年前我第一次看到它们以来,它们确实改进了文档。

因此,我为您提供了一些功能,可以收集您的所有联系电子邮件,来自收件箱的电子邮件以及您的电子邮件。

function myContacts()
{
  var s = '';
  var br = '<br />';
  var contact = ContactsApp.getContacts();
  for(var i = 0;i < contact.length;i++)
  {
    var addrA = [];
    var addresses = contact[i].getEmails();
    for(var j = 0;j < addresses.length;j++)
    {
      s += addresses[j].getAddress() + br;
      addrA.push(addresses[j].getAddress());
    }
  }
  dispStatus('Contact Emails',s, 800, 400);
}

function MyFroms()
{  
  var threads = GmailApp.getInboxThreads();
  var s = '';
  for(var i = 0; i < threads.length; i++) 
  {
    var msg = threads[i].getMessages();
    for(var j = 0; j < msg.length;j++)
    {
      s += msg[j].getFrom() + '<br />';
    }
  }
  dispStatus('My Messages', s , 800 , 400);  
}

function MyMessages()
{  
  var threads = GmailApp.getInboxThreads();
  var s = '';
  for(var i = 0; i < threads.length; i++) 
  {
    var msg = threads[i].getMessages();
    for(var j = 0; j < msg.length;j++)
    {
      s += 'Message' + j+1 + '<br />';
      s += msg[j].getFrom() + '<br />';
      s += msg[j].getBody() + '<br />';

    }

  }
  dispStatus('My Messages', s , 800 , 400);  
}

function dispStatus(title,html,width,height)
{
  var title = typeof(title) !== 'undefined' ? title : 'No Title Provided';
  var width = typeof(width) !== 'undefined' ? width : 800;
  var height = typeof(height) !== 'undefined' ? height : 400;
  var html = typeof(html) !== 'undefined' ? html : '<p>No html provided.</p>';
  var htmlOutput = HtmlService
     .createHtmlOutput(html)
     .setWidth(width)
     .setHeight(height);
 SpreadsheetApp.getUi().showModelessDialog(htmlOutput, title);
} 

这不是一个完整的答案。但希望它会鼓励你跳进去锻炼你的精神肌肉并带回我们至少一个部分工作的骨架,我们可以帮助你跑步。