Setting Up a Complete Mail Server Solution with DomainIndia's VPS Print

  • 0

A Detailed Guide to Install and Setup a Complete Mail Server Solution on's VPS


Creating your own mail server affords you complete control over your email service, enhancing privacy and providing limitless mailbox size. Setting up a mail server, however, can be intricate, requiring a solid understanding of the essential components and security measures involved.

A pivotal element in any mail server setup is the Mail Transfer Agent (MTA), responsible for the receipt, routing, and delivery of email. In this guide, we'll employ Postfix as our MTA of choice, but other options like Exim are also available. Using DomainIndia's VPS running on AlmaLinux/CentOS, we'll set up a robust mail server featuring Postfix, Dovecot, and Roundcube.

  • You should have a VPS from DomainIndia. You can choose the suitable plan from
  • A registered domain name.
  • Basic knowledge of Linux commands and text editors.

Step 1: Initial Server Setup

After purchasing your VPS, the first step is to set up AlmaLinux/CentOS on your server. DomainIndia provides a guide on setting up a new VPS with AlmaLinux/CentOS.

Once you have your server up and running, SSH into your server:

ssh root@your_server_ip

Before you start installing packages, it's best practice to update the current packages to their latest version:

sudo yum update -y

Step 2: Install and Configure Postfix

Postfix will be used as our SMTP server. Install it using the following command:

sudo yum install postfix

Start and enable Postfix service:

sudo systemctl start postfix
sudo systemctl enable postfix

Step 3: Install and Configure Dovecot

Dovecot will be used as our POP/IMAP server. Install Dovecot using:

sudo yum install dovecot

Start and enable Dovecot service:

sudo systemctl start dovecot
sudo systemctl enable dovecot

Step 4: Install and Configure Roundcube

Roundcube provides a web interface for users to check their emails. Before installing Roundcube, we need to set up a web server and PHP. We will use Nginx and PHP-FPM for this tutorial:

sudo yum install nginx php-fpm php-mysqlnd

Start and enable Nginx and PHP-FPM service:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Now we can install Roundcube:

sudo yum install roundcubemail

Step 5: Creating User Accounts

You can create a user account using the `useradd` command:

sudo useradd -m username
sudo passwd username

Replace 'username' with the desired username.

Step 6: Configuring DNS Records

At this stage, you will need to set up DNS records for your domain. This includes the MX, SPF, DKIM, and DMARC records. You'll need to do this through the interface provided by your DNS provider.

Step 7: Enabling SSL with Let's Encrypt

Secure your mail server by installing Let's Encrypt SSL certificates. This can be done using Certbot. Install Certbot:

sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx

Obtain and install certificates:

sudo certbot --nginx

Step 8: Firewall Configuration

AlmaLinux/CentOS uses `firewalld` to handle the firewall. Open the necessary ports:

sudo firewall-cmd --add-service={http,https,smtp,imap,imaps,pop3,pop3s} --permanent
sudo firewall-cmd --reload

Step 9: Test Your Setup

Send a test email to verify that your mail server is working properly:

echo "Test email body" | mail -s "Test email subject"

Check your email account for the test email.

 Step 10: Spam Prevention

Use SpamAssassin and ClamAV to help prevent spam:

sudo yum install spamassassin clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Step 11: Maintenance and Monitoring

Monitor your mail server to ensure its smooth operation. Check the logs regularly for any issues. Configure log rotation to prevent the logs from taking up too much disk space.


Setting up a mail server is not a trivial task, especially given the complexity and the level of responsibility involved. By following the steps outlined in this guide, you should have a functional and secure mail server. Remember to back up your server regularly to prevent data loss and keep all software up-to-date to ensure you have the latest security patches. As your requirements grow, you can expand this setup by adding more domains or users as needed.

Was this answer helpful?

« Back