Questions · Email

How do I clean an email list before a campaign?

Every email address is checked on its form (is it written correctly?) and on its domain (does it really exist and receive mail?). Typos in the best-known providers, such as “gmial.com”, are corrected with the original kept beside them instead of being discarded: a recovered contact is worth more than a discarded one.

What we check on every address

The verification works on two levels, both before anything is sent.

  • The syntax, according to the formal rules for email addresses laid down in RFC 5321 and 5322: structure, allowed characters, punctuation out of place.
  • The domain, checking that it exists and is set up to receive mail (MX record): a domain spelt right but non-existent, or without incoming mail, leads to no mailbox.

From there the engine adds three useful flags, not just a valid/invalid verdict:

  • Domain typo: “gmial.com” is recognized as a certain typo of a well-known provider and corrected, with what was written kept beside it; on any other domain the correction stays a proposal, so the contact is recovered instead of lost.
  • Disposable mailbox: temporary addresses, designed never to receive a real newsletter, are flagged for what they are.
  • Role address: “info@”, “sales@”, “accounts@” are valid addresses and stay in the list — it is just useful to know there is no single person behind them, to set the tone of the campaign.

What we do not do, and why

We do not check whether the single mailbox really exists by connecting to the recipient's mail server (SMTP verification). It is an intrusive technique — it knocks on someone else's server one email at a time — and on the biggest providers it is also unreliable: many always answer “exists” so as not to tell spammers which addresses are real, so the result is no more trustworthy than a coin toss.

The principle we follow is different: recovering the contact is worth more than the verdict. A list with a typo corrected and declared is more useful than a list with that contact silently discarded.

The outcome you find beside every email address

The result is not a plain yes or no: every address comes back with a flag that explains what we found, so you can decide row by row what to do before sending.

  • No flag: the address is written correctly and the domain receives mail, there is nothing to correct.
  • Corrected in form: syntax tidied, for example spaces or capitals out of place removed, without touching the substance of the address.
  • Domain typo: the domain as written does not exist but resembles a well-known one; a certain typo is corrected with the original beside it, a possible one comes with the proposed correction.
  • Disposable mailbox: designed never to receive anything lasting, worth watching if the campaign needs a contact that is stable over time.
  • Role address: valid, but there is probably an office behind it and not a person.
  • Domain non-existent or invalid: here delivery is not possible, and this is the part of the list that is really worth removing before sending.

How to work through it

You can verify one address at a time from your account to get an idea, or pass the whole list in a file: every row comes back with the outcome beside it, ready to be filtered before sending. If your system calls our API directly, email verification is a dedicated endpoint and fits into the flow you already use to send campaigns. If you send with AcyMailing, there is a ready-made add-on that checks the subscribers in a single job and writes the outcome in a field of each one.

A field can contain several addresses separated — it often happens in CRMs with “email1; email2” in the same cell: we split them and verify both, without you having to clean the file by hand first. The other columns of the file, first name, surname, postal address, stay intact: we only add the columns with the email address in its correct form and the outcome, without touching the rest of the database.

Why do it before every send

A list with too many undeliverable addresses damages the sender's reputation with the mail providers: the more emails bounce, the more the following campaigns risk ending up in spam, even those addressed to real contacts. Cleaning the list before sending is not just a matter of tidiness: it protects the deliverability of all the campaigns that come after.

There is also a simpler, almost accounting side: every email sent to a non-existent address is a wasted send, and on a list of a few tens of thousands of contacts the difference between a clean list and a raw one shows at once in the numbers of the campaign, not only in its reputation.

How long it takes

A list of a few thousand addresses is ready in a few minutes; large files run in a queue and you receive an email when the job is ready, with the result downloadable for thirty days. Before starting you see a preview with the columns recognized in the file: the operations are taken only when you confirm, not on the mere upload. The price list is on the pricing page.

A typical row

Before
Jan de Vries, Kalverstraat 92, 1012 PH AMSTERDAM
jan.devries@gmial.com
After
Jan de Vries, Kalverstraat 92, 1012 PH AMSTERDAM
jan.devries@gmail.com

Outcome: domain typo, corrected. The syntax is correct, the domain as written does not exist and is one letter away from a well-known provider: the address comes out as “gmail.com”, with what was written kept beside it. The contact is recovered instead of being discarded. The name is invented for demonstration purposes; any reference to real persons is purely coincidental.

The questions that follow

Do you also check whether the mailbox really exists?

No, we do not do SMTP verification on the single mailbox: it is intrusive and on many providers it gives unreliable answers. We check syntax, domain and the signals that can be read without knocking on the recipient's server.

Is a role address like info@ considered an error?

No, it is a valid address and stays in the list. It is only flagged as a role address, because it is useful to know when you write the text of the campaign.

What happens to an address with a wrong domain?

If the domain is a certain typo of a well-known provider, like gmial instead of gmail, it is corrected and the original is kept beside it. On any other domain the correction stays a proposal next to the outcome, and you decide whether to apply it.

Can I verify several email addresses in the same column?

Yes. If a cell contains several addresses separated, for example by a semicolon, we split them and verify each one.

Does it work from my own API calls, without going through the site?

Yes, email verification is an endpoint of the JSON API: you can fit it into the flow you already use to manage the list, before sending.

Are disposable mailboxes removed from the file?

No, they stay in the file with the outcome that flags them. You decide whether to exclude them: some campaigns keep them anyway, for example in account verification flows.

See the checks on email, phone and website

What the email verification does on a single address; then register to work on your whole list, from the site or from a file.

See the checks on email, phone and website

Read also: Email, phone and website verification · Verifying the addresses in an Excel file · Verifying and correcting a customer database