Gmail应用搜索条件

时间:2017-07-10 10:48:55

标签: regex string google-apps-script gmail criteria

我在 Gmail

中有以下搜索条件
user@domain  from:/mail delivery/ || /postmaster/ ||/Undeliverable/ 

我正在尝试编写Goole Apps代码以返回相同的结果。这是代码:

var thread=GmailApp.search("user@domain  from:/mail delivery/ || /postmaster/ ||/Undeliverable/ ");

我得到了不同的结果。我是正则表达式 Google 应用程序的新手。

1 个答案:

答案 0 :(得分:1)

Gmail Search with Google Apps Script上试用Amit Agarwal的教程,其中包括Using Regular Expressions to Find Anything in your Gmail Mailbox

function Search() {

var sheet   = SpreadsheetApp.getActiveSheet();
var row     = 2;

// Clear existing search results
sheet.getRange(2, 1, sheet.getMaxRows() - 1, 4).clearContent();
// Which Gmail Label should be searched?
var label   = sheet.getRange("F3").getValue();
// Get the Regular Expression Search Pattern
var pattern = sheet.getRange("F4").getValue();
// Retrieve all threads of the specified label
var threads = GmailApp.search("in:" + label);

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

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

  for (var m = 0; m < messages.length; m++) {
    var msg = messages[m].getBody();
    // Does the message content match the search pattern?
    if (msg.search(pattern) !== -1) {
     // Format and print the date of the matching message
     sheet.getRange(row,1).setValue(
      Utilities.formatDate(messages[m].getDate(),"GMT","yyyy-MM-dd"));
     // Print the sender's name and email address
     sheet.getRange(row,2).setValue(messages[m].getFrom());        
     // Print the message subject
     sheet.getRange(row,3).setValue(messages[m].getSubject());
     // Print the unique URL of the Gmail message
     var id = "https://mail.google.com/mail/u/0/#all/"
       + messages[m].getId();
     sheet.getRange(row,4).setFormula(
       '=hyperlink("' + id + '", "View")'); 
     // Move to the next row
     row++;
   }
  }
 }
}