Skip to content

Label and filter Gmail threads using basic RegEx against the email body or headers.

License

Notifications You must be signed in to change notification settings

paoloantinori/gmail-labeler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Gmail Labeler

Label and filter Gmail threads using basic RegEx against the email body or headers.

Configuration

Filters Options

var filters = [
  // star emails deliveredto user@domain.com
  { name: 'user emails', match: /deliveredto:user@domain.com/, star: true },
  
  // organize by list name
  { match: /(?:List-ID:\s(.+?)\s<)/, archive: true },

  // label all emails with "bank" in the subject as "finance" and mark as read
  { name: 'finance', subject: 'bank', markRead: true },
];
  • name - The label name to apply when matched. This can also be nested by adding slashes folder/name. If no name is set, it will use the first RegEx selector result (.+?)
  • match - The RegEx to match against. This searches the entire raw contents of the email, including the header. Include a RegEx selector to return dynamic label names (.+?)
  • subject - Helper to search the subject for text
  • archive - true/false to archive the matching emails
  • star - true/false to star the matching emails
  • markRead - true/false to mark the matching emails as read

From

var from = [
  "from:email@domain.com",
  "list:subscription.domain.com"
];

This can be any combination of Gmail filters to apply the labels against.

Installation

You'll need to enable Google App Scripts in your Google Drive account

Create a new Google App Script

Paste the labeler.gs contents into the new file and Save

After savings, create a new trigger

Run the labeler function every minute

Sample results:

Screenshot from 2016-11-23 17-24-23.png

currently leveraging this companion GMail native filter, to identify emails that the script will process Screenshot from 2016-11-28 11-57-03.png

Matches: ((from:notifications@github.com OR replyto:users@*apache.org OR replyto:dev@*apache.org) OR replyto:*@*yahoogroups.com OR replyto:*@*lists.jboss.org) AND -label:OSS-personal)
Do this: Apply label "OSS"

Matches:  (ListID:paoloantinori* OR (to:(author@noreply.github.com OR mention@noreply.github.com OR manual@noreply.github.com ) OR cc:comment@noreply.github.com))
Do this: Apply label "OSS/personal", Categorize as Personal

Quota limits:

https://script.google.com/dashboard

About

Label and filter Gmail threads using basic RegEx against the email body or headers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%