Filtering incoming e-mail messages by IP address

You can use cPanel's e-mail filtering capabilities to process incoming messages from a specific IP address or range of IP addresses. Learn how in this article.

This article describes how to use cPanel's e-mail filtering capabilities to process incoming messages from a specific IP address or range of IP addresses. For example, you may want to automatically delete all incoming messages from an IP address.

You can enable filtering for a specific user, or for all users on your account.

Determining which IP address to filter

All e-mail messages contain in their headers information about their origin. By examining the message headers, you can determine which IP address or addresses you want to filter.

📘

Note

For information about how to view e-mail message headers for your e-mail client, please see this article.

In the raw e-mail message headers, look for the IP address that you want to filter. The IP address is often in the Received: header.

Setting up the e-mail filter

After you know which IP address or addresses you want to filter, you are ready to set up filtering in cPanel. To do this, follow these steps:

  1. Log in to cPanel.

    📘

    Note

    If you do not know how to log in to your cPanel account, please see this article.

  2. On the Tools page, in the Email section, do one of the following:

    • To create a filter for a specific e-mail account, click Email Filters:
      cPanel - Email - Email Filters icon

      Locate the account for which you want to add a filter, and then click Manage Filters.

    • To create a global e-mail filter, click Global Email Filters:

      cPanel - Email - Global Email Filters icon

  3. Click Create a New Filter.

  4. In the Filter Name text box, type a name for the filter.

  5. Under Rules, in the From list box, select Any header.

  6. In the contains list box, select matches regex.

  7. In the next text box, type the following regular expression (also known simply as a "regex"). Replace xxx with the digits of the specific IP address you want to filter:

^xxx\.xxx\.xxx\.xxx$

Alternatively, you can filter a range of IP addresses. For example, the following regular expression matches the last 256 addresses in the network:

^xxx\.xxx\.xxx\.[0-9]{1,3}$

📘

Note

A range of IP addresses is a collection defined by a starting address and ending address. For example, the range of IP addresses from 10.4.1.1 to 10.4.1.75 includes 75 total addresses.

🚧

Important

Make sure that the regular expression is not too broad. Otherwise, you may unintentionally filter messages that you want to receive. To test your regular expression interactively and make sure it matches what it is supposed to match, please visit https://regex101.com.

  1. Under Actions, select what to do with messages that match the filter. For example, you can discard the message, send it to a specific folder, redirect it, and other actions.

  2. Click Create. cPanel creates the new filter, which takes effect immediately.

More Information

For more information about IP addressing, please visit https://en.wikipedia.org/wiki/IP_address.

Related Articles