Email activity
Addresses checked before sending
Why some mail is refused because the address doesn't exist, and how to keep your list clean.
What this is
Before we send, we check whether the address can receive email. If the mailbox doesn't exist, or its domain takes no mail at all, we don't send. You see "Not sent — this address doesn't exist (checked before sending)".
Mail to an address that doesn't exist can never arrive. Each attempt still counts against you. The recipient's provider marks you down, and outbound filters treat a sender that mails many missing addresses as a spammer. Refusing those messages keeps the rest of your mail reaching inboxes.
How it works
- SMTP and API sends. A message to an address that doesn't exist is refused as it is sent:Nothing is queued, and nothing reaches the recipient's provider.
- Campaigns. The recipient is skipped and shown in the report as Not sent — address doesn't exist. The rest of the campaign goes out as normal.
- Imports. With Bounce protection on, each new contact is checked in the background and uses one check. The import screen shows how many don't exist and how many are risky. Addresses that don't exist are marked Doesn't exist and are never mailed. With it off, new contacts are added as Not checked, and the import screen shows about how many look bad.
- Marketing keys. A marketing key only sends to your contacts whose address has been checked. Other addresses are refused with a
550 5.7.1reply. If a contact is still being checked, the email may wait a few minutes. After that, it is sent. Transactional mail, such as password resets and receipts, is never held.
Risky is a warning, not a refusal. It covers four kinds of address:
- throwaway addresses (10-minute mail);
- domains that accept every address whether or not it exists;
- role addresses such as
info@orsales@; - inboxes that are full: we hold marketing to them for 7 days, then check again. Other email still goes.
Marketing mail to throwaway addresses is not sent; it counts on your Deliverability page as "throwaway". Marketing to a full inbox is not sent while its hold runs. A campaign or journey skips the person, and doesn't send that email later. A marketing key's email to them is refused, with a date to try again. Everything else is sent as usual.
If a check can't be completed, the mail is sent exactly as it would have been. A check never delays or loses mail because we couldn't finish it.
Set it up
Refusing addresses that don't exist needs nothing switched on. To send fewer messages to addresses that don't exist in the first place:
- Turn on Bounce protection under Sending › Bounce protection. Each new contact is checked before you email it. See Bounce protection.
- Confirm addresses when people sign up (double opt-in). Send one email with a link, and only add the address once the link is clicked. This is the single best defence: typos and made-up addresses never reach your list.
- Check for typos at the form.
gmail.con,gmial.comandhotmial.comare the usual culprits. Your app can ask us as people sign up: see Check an address at signup. - Remove addresses that bounce. We do this for you automatically — see Suppressions.
- Don't mail lists you didn't collect yourself. Bought and scraped lists are full of dead and trap addresses.
When something is wrong
Your app got a 550 5.1.1 … does not exist (checked before sending) reply. Remove the address from your list. The mailbox doesn't exist, and sending again gets the same answer.
Your app got a 452 4.2.2 … inbox is full (checked before sending) reply. The person's mailbox is full. Nothing was sent. Try again after the date in the reply.
A campaign shows many "Not sent — address doesn't exist". The list has old or mistyped addresses. Those recipients were skipped. Clean the list at its source, and turn on Bounce protection so new ones are checked when they arrive.
You're certain an address is real. Contact Mailyte support with the address and we'll check it again. Addresses at a domain that had no mail server are checked again automatically after 30 days.
Imported contacts show "Doesn't exist". The address was checked after the import and doesn't exist. Correct the address if it was mistyped, or remove the contact.