What is a catchall email and how does it work?

Last Updated Feb 08, 2021
Emma Jagger

Engineer, maker, Google alumna, CMU grad

To send an email via the Internet, both the sender and recipient must have an email address.

These addresses are composed of two parts separated by the @ symbol. The first part corresponds to the mailbox's name, and the second part to the domain name hosting the mailbox.

If you try sending an email message to a domain that does not exist, such as contact@aaaaa.aaaaa, your email client will inform you of the non-existence of this domain (or you can use an Email Verification & Validation API), even before the message has left your computer. Therefore, you will be immediately notified and correct the address so that your message can reach its recipient.

On the other hand, if you send a message to a mailbox that does not exist, the message will leave your computer, arrive at your recipient's mail server, and travel back to you to notify you of the error. This round trip can sometimes take a few minutes.

How does a catchall email address work?

The mail servers only to accept messages sent to existing mailboxes, and return an error if someone tries to send a message to a mailbox that does not exist. A catchall filter allows the server to transfer a message sent with a wrong address to a mailbox specifically dedicated to that, instead of replying with an error message.

Companies can choose to create a catchall address to ensure they don't miss any messages from their customers. If their address is contact@company.com and a person sends them a message to cntct@company.com, it will be redirected to company.com's catchall address.

To reduce costs or simplify management, some companies can also use a catchall email to collect all messages sent to various email addresses, such as contact, customers, support, inquiry etc.

The disadvantages of a catchall address

Some email service providers do not offer the possibility to configure a catchall address. Furthermore, catchall addresses quickly become spam collectors and will receive in no time hundreds of unwanted messages. Spambots blindly send messages to addresses such as admin@company.com, contact@company.com, ceo@company.com etc. Companies that use a catchall will have to dedicate resources to sort through all the spam collected by the catchall filter to extract the legitimate emails.

Why sending messages to catchall addresses is not a good idea?

Catchall mailboxes fill up very quickly with spam messages. Sooner or later, companies that use a catchall address to receive legitimate emails will stop dedicating resources to sort those messages. What you send to a catchall address have chances to be lost.

What to do is my customers provide me with a catchall address?

Suppose you own a service that collects your visitors' email addresses to create accounts or send mailing lists. You could set up a real-time system to detect if the email address provided by your visitors during registration is a catchall address. If it's the case, your registration will notify your visitor there may be a typo in the address they provided. Abstract provides a free API that can determine within a few milliseconds if an email address is a catchall address. This API can be used in multiple languages, such as PythonPHP, Ruby, and more. There are also many other email verification API's you could use to suit your exact needs.

Here is how to retrieve information about an email address:


https://emailvalidation.abstractapi.com/v1/?api_key=YOUR_API_KEY&email=john.smith@company.com

And here is the API response, which contains the is_catchall_email field that indicates if the email address is a catchall:


{  
    "email": "john.smith@company.com",  
    "autocorrect": "",
    "deliverability": "DELIVERABLE",  
    "quality_score": 0.90,  
    "is_valid_format": {
            "value": true,
            "text": "TRUE"
            },
    "is_free_email": {
            "value": true,
            "text": "TRUE"
            },
    "is_disposable_email": {
            "value": false,
            "text": "FALSE"
            },
    "is_role_email": {
            "value": false,
            "text": "FALSE"
            },
    "is_catchall_email": { # <-- is it a catchall?
            "value": false,
            "text": "FALSE"
            },
    "is_mx_found": {
            "value": true,
            "text": "TRUE"
            },
    "is_smtp_valid": {
            "value": true,
            "text": "TRUE"
            },
    "quality_score": 0.90,  
    }

Related articles