Email List Cleaner

What is Email List Cleaner?

Email List Cleaner is a software tool that allows users to import their email lists then each email address will be filtered through up to 10 different rules to determine if its a real valid email address that is worth sending emails to.

How does it work?

Here is the list of filters that are applied to each email address.

  • SMTP check - We will connect to the server (so if the email address is we connect to MX records) mailbox then ask the mail server if the mailbox exists. While this works perfectly for gmail from any IP address some other mail servers such as hotmail will not allow this check from a residential IP address as rDNS must be setup. However as we only mark the email address as invalid if we receive a mailbox does not exist error we eliminate any false positives.
  • Gibberish check - We check each email address for mixes of letters and numbers that contain few unique letters and numbers. For example would pass but would fail the list clean.
  • Rude word check - Swear words and words that are not commonly in email addresses cause these emails to be filtered out.
  • Valid email (loose check) - Checks email address to see if they contain only letters and numbers, - _ and @
  • Valid email (loose check) - Checks email address to see if they conform to the RFC 5322 standard.
  • Known temp disposable email domain - Checks to see if the email contains a known temp disposable email domain from the softwares internal database of known temp disposable email domains
  • Suspected temp disposable email domain - At the start of the run this settings will search Google for keywords such as "disposable email address". Then it will crawl all the results extracting and validating all the domains it can find on these disposable email address websites, while being careful not to exclude known good email domains.
  • Email domain DNS resolves - Checks to see if the domain on the email has DNS that successfully resolves.
  • Check if domain has MX records - Checks the email domain to see if it has MX records set.
  • Duplicate check - Checks to see if email address is a duplicate and already in imported email list.

Why should I use it?

Hard bounces not only cost money that you will never get back but it also damages the reputation of your sending IP address or risks your email provider shutting down your account. Emailing a clean list helps ensure accurate stats, a better IP address reputation and more ROI per email campaign. Where else can you get a email list cleaner with this many features?

What does it look like?

Email List Cleaner

Watch Email List Cleaner in action / Tutorial

Change log

  • 19/09/2017 - Initial release
  • 20/09/2017 - Switched off "suspected temp email list generation" by default, takes over 20min unless you have an i7+
  • 23/11/2017 - Fixed exporting of dirty emails bug

Video transcript

This is the transcript from the video above, it needs tiding up a little as its from YouTube subs.

Hi guys it's Jamie from and in this video I'm going to show you how to use my email list cleaner tool and what this basically does is, it allows you to paste in or import in your email list and it will clean it. It will try and get rid of any kind of dirty emails that are in there, so what I mean is invalid emails that would result in a hard bounce if you were to email them, so there's various filters that it runs through to try to determine whether it's a valid email address or not. So, let's start off by having a look at what options we can set here in the list cleaning options. So first off we've got the SMTP check, so this will basically connect to the email server and see whether the email box doesn't exist. Now, the reason it's that way around, as opposed to it does exist is because sometimes after you connect so many times to a mail server to check if their emails exist to check what happens when you try and begin sending to an email it'll block you.

So the reason I've done it this way is to prevent you know false positives because if we would set this you'd only get a successful result if it was to say that the inbox exists and then we got blocked, then you get loads and loads of emails saying that they're not you, know, they're false when in fact, they're actually completely valid emails, so how it works at the moment is it connect connects, and then we only say it's an invalid email if the mail, but if that's mail server, tells us that the mailbox doesn't exist, so hopefully that makes sense. That's the most complicated one to get your head around but that works really well you know for things like Gmail and stuff like that.

So next gibberish check, so what this does is it basically checks the amount of unique characters that are in the email address, because you know when people are trying to fill out form, they don't put their email address in normally they'll just kind of put three or four fingers on the keyboard and just you know, mash a long line of strings and that's quite easily detectable, so you know emails like 1, 2, 1, 1, 2, 1, 2, blah blah. you know those kind of emaill, this filter will get rid of those basically.

Rude word check pretty self-explanatory, people put in (excuse my language), **** off at, and things like that, this will filter that out. Next whether it's a valid email loose check so what this does is this basically filters out any email address that contains any character that isn't a letter, a number, a dot, a, I believe, underscore as well actually and the @ symbol, which you know that's fine to anything other than those really in their email address. Though saying that that's why I've added in the strict check you can, you can actually have quite a wide variety of characters in an email address, but just most email systems don't support them. There are a few that do, which is why I've added this strict email check in to see if it checks the official email format check. If a email domain is a know disposable email domain. So, within the software we have a database of disposable email addresses and if the domain matches any of those, then we'll say it's a dirty email.

Now this is quite a cool feature, it will slow it down to begin with, well, you know it can takea while depending on your connection speed and your cpu speed. For me, it takes about 15-20 minutes to build that new database. What it basically does is in the background, it'll go to Google search for disposable email address and temporary email address. Those kind of keywords then take all the domains that come back well the first ten that come back for each query and then it will load them up in the background and it will pull out all those disposable emails that they use. So it's basically like a real-time check for disposable email addresses, like I said, if you have a slow computer, that will take a long time, so I've left it unchecked by default.

Check whether the email domain resolves, so you know if it's Jamie", it will check of resolves. Check if the domain has MX records, so when you have a domain like, they'll have MX records and then those records will point off to their mail server so people know where to connect to to send email through that domain, does that make sense? So if the domains doesn't have MX records there is a good chance that it's not going to receive any email. Also check if the email is a duplicate email address already in the list.

Ok, so that's all the pretty much all the options. I'll just show you this other one quickly, this is basically just the amount threads to run at once. So the reason I'd say leave that as it is, is because if you have too many connections going off to Gmail, etc at once, then they will ban your IP although that won't cause any false positives because of how we've set up that SMTP check as I said before, but it will mean the results aren't quite as accurate. So I've put in just a few emails to test, some are invalid, some a valid and we'll go through them now and we'll show you which ones are valid and which ones that things are invalid, so obviously gibberish with no check at all, that's got loads of fails that one. There failed, for obvious reasons, swear words on failed because of the MX records and it domain not resolving. Probably you can click there and check yeah, so the mail server actually told as a test at doesn't exist, and it also told us that this rubbish, one we made up, doesn't exist and it's told as and these have all passed, the filter checks and also the Gmail servers, told us of these. What it's told us that they don't not exist, which means they do exist. That makes sense. So hopefully I should give you a rough idea of how it works.