Sendmail blocking spam email id, ips with access database

in Categories last updated June 20, 2006

Q. How do I block or IP address for Sendmail spammers?

A. Sendmail offers various options to block an email address, domain name or IP address using access database.

File /etc/mail/access act as an access control for your Sendmail smtp server. With this file you can define:

  1. Who we accept mail from
  2. Who we accept relaying from
  3. Who we will not send to etc


# vi /etc/mail/

Make sure following line exists in your configuration file (otherwise you need to add/append following line):


Save the file and exit to shell prompt. Now, open /etc/mail/access file:

# vi /etc/mail/access

To block junk or spam mail use following format REJECT REJECT REJECT

Save the file. Once or access file is modified, you need to regenerate /etc/mail/ or rebuild the access database. Type any one of the following commands:

# cd /etc/mail
# make


# m4 /etc/mail/ > /etc/mail/

Restart the sendmail:

# /etc/init.d/sendmail restart

Other options supported by access database

  • OK – Accept email FROM: or TO: specified address
  • DISCARD – Do not accept email FROM: or TO: specified address
  • REJECT – Drop email with an error FROM: or TO: specified address
  • HATER – Use check_mail and check_realy rules for email
  • FRIEND – Do not use check_mail and check_realy rules for email
  • ERROR:ecode:etext – Drop email with specified error code (ecode) and error text message (etext).

Examples ERROR:550:Relay denied REJECT REJECT
Spam:abuse@ FRIEND
Connect: ERROR:5.7.1:550: Relay denied

How do I test access database is working or not?
Use sendmail with -bt option as follows:

# sendmail –bt
> check_mail

OR use telnet command:

# telnet localhost 25
HELO localhost

In both case you should get relay denied error.

See also:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 5 comments/add one below):

5 comment

  1. Hi Guys

    I am using Centos and sendmail, how do i block all outgoing emails and allow only email from my domain

    Have a question? Post it on our forum!