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 sendmail.cf directly, we will edit the sendmail.mc 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 sendmail.cf 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/sendmail.mc 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 sendmail.cf 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.

Categories: Tutorials

View Comments

Leave a Comment