Created
October 12, 2013 14:49
-
-
Save hackingbutlegal/6950770 to your computer and use it in GitHub Desktop.
This Google Apps script scans the mailbox, compares the message body with the search pattern and prints any matching messages.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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++; | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment