diff --git a/tools/bionicbb/gmail_listener.py b/tools/bionicbb/gmail_listener.py
index 455d270..2f19454 100644
--- a/tools/bionicbb/gmail_listener.py
+++ b/tools/bionicbb/gmail_listener.py
@@ -51,6 +51,13 @@
     return headers
 
 
+def should_skip_message(gerrit_info):
+    match = re.search(r'<(\S+)>$', gerrit_info['Owner'])
+    if match:
+        return not match.group(1).endswith('@google.com')
+    raise RuntimeError('Gerrit info missing Gerrit-Owner info.')
+
+
 def build_service():
     from apiclient.discovery import build
     from oauth2client.client import flow_from_clientsecrets
@@ -200,7 +207,7 @@
 
 
 def handle_change(gerrit_info, _, dry_run):
-    if '@google.com' not in gerrit_info['Owner']:
+    if should_skip_message(gerrit_info):
         return True
     return build_project(gerrit_info, dry_run)
 handle_newchange = handle_change
@@ -233,7 +240,7 @@
         drop_rejection(gerrit_info, dry_run)
 
     # TODO(danalbert): Needs to be based on the account that made the comment.
-    if '@google.com' not in gerrit_info['Owner']:
+    if should_skip_message(gerrit_info):
         return True
 
     command_map = {
diff --git a/tools/bionicbb/test_gmail_listener.py b/tools/bionicbb/test_gmail_listener.py
new file mode 100644
index 0000000..feb7961
--- /dev/null
+++ b/tools/bionicbb/test_gmail_listener.py
@@ -0,0 +1,21 @@
+import gmail_listener
+import unittest
+
+
+class TestGerritParsers(unittest.TestCase):
+    def test_should_skip_message(self):
+        info = gmail_listener.get_gerrit_info(
+            'Gerrit-Owner: Some Googler <somegoogler@google.com>\n')
+        self.assertFalse(gmail_listener.should_skip_message(info))
+
+        info = gmail_listener.get_gerrit_info(
+            'Gerrit-Owner: Fake Googler <fakegoogler@google.com.foo.com>\n')
+        self.assertTrue(gmail_listener.should_skip_message(info))
+
+        info = gmail_listener.get_gerrit_info(
+            'Gerrit-Owner: John Doe <johndoe@example.com>\n')
+        self.assertTrue(gmail_listener.should_skip_message(info))
+
+
+if __name__ == '__main__':
+    unittest.main()
