Simple Mailserver With Postfix, Dovecot, And Sieve On CentOS 7

This tutorial will show you how to get a simple mailserver on CentOS 7, with Postfix as MTA, Dovecot as MDA and Sieve for sorting mail - all over an encrypted connection for improved security.

In order to configure everything, you will first need to install these packages:

yum install postfix dovecot dovecot-pigeonhole mailx

The first configuration step is done in /etc/dovecot/conf.d/15-lda.conf, by adding a postmaster address. This allows people to contact you in case of a failure. We will also be allowing auto-creation of folders and auto-subscription of said folders to avoid an inconsistent state between your mail client and the server:

postmaster_address = [email protected]
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes

The next step is to assign the correct path for your users' mailboxes in /etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:~/Maildir

Make sure that there is only one mention of "mail_location" in the file to avoid problems. The last step for ensuring basic functionality is to tell Postfix to deliver the mails via Dovecot. Add the following line to /etc/postfix/main.cf:

mailbox_command = /usr/libexec/dovecot/deliver

Restart both services and you can send the first test mail:

systemctl restart postfix
systemctl restart dovecot

Since it is considered rude to use the root-account for mailing, you should create a separate user for your mailing needs:

 useradd -m youruser
 passwd youruser

Now, you can test the mail functionality with the following command:

echo "TEST" | mail -s "testmail" youruser@localhost && tail -f /var/log/maillog

If your log files contain a line similar to the following one (The last part is the important) ..

postfix/local[27114]: 3F63C5B71: to=<youruser@localhost>, orig_to=<youruser@localhost>, relay=local, delay=0.01, delays=0/0/0/0.01, dsn=2.0.0, status=sent (delivered to command: /usr/libexec/dovecot/deliver)

.. then everything is working properly.

At this point, there are two important things missing - encryption and mail sorting.

The first can be configured, for Dovecot, in /etc/dovecot/conf.d/10-ssl.conf, assuming you already have a certificate at hand:

ssl = require
ssl_cert = </path/to/your/certificate
ssl_key = </path/to/your/key

For sieve to work, edit the protocol section in /etc/dovecot/conf.d/15-lda.conf to look like this:

protocol lda {
  mail_plugins = $mail_plugins sieve
}

Restart the service:

sytemctl restart dovecot

And that's it. You can now log in via IMAP or POP3 in a secure way, send transport encrypted mails, and write filters with Sieve.

Happy mailing!

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

How To Speed Up Nginx on CentOS?

Introduction This tutorial will teach you how to optimize a website that is being hosted with...

Basics of Managing Users on CentOS Systems

Managing users can be a daunting task: from day-to-day maintenance, security risks, and lack of...

Check Internet Speed With Speedtest-cli on CentOS

Introduction In this tutorial, we'll be installing speedtest-cli to test the network speed of...

Initial Setup of a CentOS 7 Server

Introduction A newly activated CentOS 7 server has to be customized before it can be put into...

ModSecurity and OWASP on CentOS 6 and Apache 2

ModSecurity is a web application layer firewall designed to work with IIS, Apache2 and Nginx. It...

Powered by WHMCompleteSolution