Boolean Strings
Navigation
  • Home
  • About
    • Github Webinar Recording
    • Brainfood Live – Is Google Boolean Broken?
    • My AI Art
    • Boolean Strings Privacy Policy
  • Services
    • Sourcing
    • Training and Certifications
      • My AI Image Gallery
  • 150+ Top Sourcing Tools
    • Social List
    • 20+ Hidden LinkedIn Search Operators
    • The Full List of 21 Google Search Operators
    • Julia’s Email Extractor
  • Custom Search Engines
    • Custom Search – Discover more: Book
    • My Best Diversity Custom Search Engine
  • Home
  • About
    • Github Webinar Recording
    • Brainfood Live – Is Google Boolean Broken?
    • My AI Art
    • Boolean Strings Privacy Policy
  • Services
    • Sourcing
    • Training and Certifications
      • My AI Image Gallery
  • 150+ Top Sourcing Tools
    • Social List
    • 20+ Hidden LinkedIn Search Operators
    • The Full List of 21 Google Search Operators
    • Julia’s Email Extractor
  • Custom Search Engines
    • Custom Search – Discover more: Book
    • My Best Diversity Custom Search Engine
Home Julia's Email Extractor

Julia’s Email Extractor

Input Text:

Options

Sort alphabetically

Remove non-personal emails

Copy extracted emails to the clipboard

Emails:

Share this:

  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • Click to email a link to a friend (Opens in new window) Email

Subscribe via Email

Join 2,491 other subscribers
Tweets by braingain
function email2remove(email) { const names_to_remove = [ "abuse", "accounting", "accounts", "admin", "administration", "administrator", "admissions", "all", "answers", "anti-spam", "antispam", "billing", "careers", "ceo", "comments", "compliance", "contact", "contactus", "customer", "customercare", "customerservice", "database", "decline", "declined", "denied", "designer", "devnull", "director", "email", "employment", "enquiries", "everyone", "feedback", "finance", "general", "hello", "help", "helpdesk", "home", "hostmaster", "info", "information", "investorrelations", "ispfeedback", "ispsupport", "job", "jobs", "legal", "list-request", "list", "mail", "mailbox", "mail-daemon", "maildaemon", "manager", "marketing", "media", "mediarelations", "news", "no-reply", "noreply", "null", "office", "operations", "orders", "phish", "phishing", "postmaster", "press", "privacy", "purchasing", "reception", "registrar", "remove", "reservations", "resume", "resumes", "root", "sales", "security", "service", "services", "shop", "spam", "subscribe", "support", "sysadmin", "system", "tech", "undisclosed-recipients", "unsubscribe", "usenet", "uucp", "webmaster", "www" ]; const name = (email.substring(0, email.indexOf("@"))).toLowerCase(); if(names_to_remove.includes(name)) return false; return !(email.charAt(0) >= "0" && email.charAt(0) <= "9"); } /* * Return true if email domain is not on the list */ function domain2remove(email) { const remove = [ "errors.stripe.com", "checkout.google.com", "group.calendar.google.com" ]; const domain = (email.substring(email.indexOf("@") + 1)).toLowerCase(); return !(remove.includes(domain)); } /* * Remove non-personal emails from a list of emails */ function removeNonPersonal(emails) { const filtered = emails.filter(email2remove); return filtered.filter(domain2remove); } function removeMalformed(emails) { return emails.filter(function(email){ if (email.includes("..")) return false; if (email.startsWith(".")) return false; if (email.includes(".@")) return false; if (email.includes("@-")) return false; if (email.includes("--")) return false; if (email.endsWith("-")) return false; return true; }); } function removeImages(emails) { return emails.filter(function(email){ if (email.endsWith(".png")) return false; if (email.endsWith(".jpeg")) return false; return true; }); } function removeDuplicates(arr) { const Obj = {}; var a; if (arr === null || arr === undefined) { return []; } for (var i = 0; i < arr.length; i++) { if (arr[i]) { a = arr[i].toLowerCase(); Obj[a] = 1; } } return Object.keys(Obj); } function cleanTLD(emails) { const commonTLD = [ ".com", ".net", ".org", ".gov", ".int", ".edu", ".co", ".mil", ".biz", ".ru", ".uk", ".au", ".in", ".de", ".ir", ".ca", ".info", ".us", ".me", ".cn" ]; const emailsLength = emails.length; const commonTLDLength = commonTLD.length; var cleanedEmails = []; for (var i = 0; i < emailsLength; i++ ) { var email = emails[i].toLowerCase(); cleanedEmails.push(email); for (var j = 0; j < commonTLDLength; j++) { var tld_ind = email.lastIndexOf(commonTLD[j]); var email_length; if (tld_ind === -1){ continue; } email_expected_length = tld_ind + commonTLD[j].length; if (email_expected_length === email.length){ break; } else { cleanedEmails[i] = email.substring(0, email_expected_length); break; } } } return cleanedEmails; } function extractEmails() { var extracted; var list_to_present = ""; const elEmailsFound = document.getElementById("emails"); if ((extracted = document.getElementById("txt").value.match(/([\w%#&\=\!\+\.-]{1,64}@[\w\.-]{1,63}\.[a-zA-Z]{2,63})/gm)) == null) { elEmailsFound.value = "No emails found"; return; } extracted = removeDuplicates(extracted); extracted = removeMalformed(extracted); extracted = removeImages(extracted); extracted = cleanTLD(extracted); extracted = removeDuplicates(extracted); // do again if (document.getElementById("sort").checked) { extracted = extracted.sort(); } if (document.getElementById("remove_non_personal").checked) { extracted = removeNonPersonal(extracted); } elEmailsFound.value = extracted.join("\n"); document.getElementById("found").innerHTML = "Emails found: " + extracted.length.toString(); elEmailsFound.scrollIntoView({behavior: "smooth"}); if (document.getElementById("copy2clipboard").checked) { elEmailsFound.select(); document.execCommand('copy'); } } function clearAll() { document.getElementById("txt").value = ""; document.getElementById("emails").value = ""; document.getElementById("found").innerHTML = ""; }