Sendmail blocking spam email id, ips with access database

by on June 20, 2006 · 4 comments· LAST UPDATED June 20, 2006

in

Q. How do I block some1@domain.com 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

Configuration

# vi /etc/mail/sendmail.cf

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

FEATURE(`access_db')dnl

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
spam@domain.com REJECT
192.168.1.100 REJECT
202.54.1.100/255.0.0.0 REJECT

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

# cd /etc/mail
# make

OR

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

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

abc.com ERROR:550:Relay denied
FROM:mail@fack.net REJECT
TO:foo@bar.com REJECT
Spam:abuse@ FRIEND
Connect:202.54.1.1 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 user@abc.com

OR use telnet command:

# telnet localhost 25
HELO localhost
MAIL FROM:user@abc.com

In both case you should get relay denied error.

See also:

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 4 comments… read them below or add one }

1 Asim April 7, 2009 at 6:00 pm

how can i block example@* or example*@* in sendmail access databse?

Reply

2 www.shopaserver.com October 12, 2009 at 10:09 am

nice , I use to love cyberciti , great for linux ppl

Reply

3 itpatil February 4, 2010 at 4:59 pm

Thanks again :)

Reply

4 Lenny Li November 27, 2014 at 6:42 am

good reference material

Reply

Leave a Comment

Tagged as:

Previous Faq:

Next Faq: