Next: Use Regular Expressions to Find Anything in your Gmail Mailbox

Use Regular Expressions to Find Anything in your Gmail Mailbox

A fantastic topic from Amit Agarwal, where he explain how to user the regular expression to find anything in yoiu Gmail account.




the regular expression in the example is the following:


[Gg]r(a|e)y\s.*[Cc]olou?r
 
because he want to find all message with string “gray color”.
 
I have try with a specific string and it work.
 
The souce code of the function is the following:
 
 
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++;
   }
  }
 }
}