Virtual Users And Domains With Sendmail


The 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:

[email protected]    exampleuser

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

[email protected]    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    [email protected]
exampleuser2    [email protected]

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.

How to Set Up Private DNS Servers with BIND on Ubuntu 16.04
Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS
How to Install Dotclear on a Debian 8 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