Virtual Users And Domains With Sendmail

sendmailThe objective of this guide is to enable Sendmail’s virtual user table, which allows us to configure user-specific and domain-wide email aliases for multiple domains. These instructions assume you are using a CentOS virtual server.

Sendmail uses a highly complex rule system for it’s configuration so instead of editing directly, we will edit the file.

Accepting mail for virtual domains/users

1.Create a new system user and set the password for that user.

useradd exampleuser
passwd exampleuser

2. Add the user to the sendmail’s virtusertable file. Open the ‘/etc/mail/virtusertable’ file and add the following:

exampleuser@exampledomain.tld    exampleuser

Each line in the /etc/mail/virtusertable file should be of the following format:

username@domainname    systemuser

3. Add each new domain name to the /etc/mail/local-host-names file


4. Generate a new file by using the following commands:

cd /etc/mail
make all
/etc/init.d/sendmail restart

Rewriting outgoing email addresses

1. Add the following lines to the /etc/mail/ file:

FEATURE(genericstable, `hash -o /etc/mail/genericstable')

2. Create /etc/mail/genericstable file containing local users mapped to desired addresses:

exampleuser    exampleuser@exampledomain.tld
exampleuser2    exampleuser2@exampledomain.tld

3. Create /etc/mail/sendmail.gdf file containing the fully qualified name of the local mail server.


4. Finally, generate a new file:

cd /etc/mail
make all
/etc/init.d/sendmail restart

PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.

Blocking abusive IP addresses using IPTABLES Firewall in Debian/Ubuntu
How to install DokuWiki on Ubuntu
Install Fail2ban on an Ubuntu 14.04 VPS
  • Ashwin Pandey

    Hi, thank you very much, for this tutorial.

    but i configured sendmail with dovecot in CentOS6, but system user not login in, some dovecot authentication problem. Please help

    Ashwin Pandey