Install software packages
Let’s install the necessary Debian packages. Run this command as root on your server as root:
apt updateDEBIAN_FRONTEND=noninteractive \ apt -y install postfix-mysql dovecot-mysql \ dovecot-imapd dovecot-lmtpd dovecot-managesieved \ apache2 python3-certbot-apache libapache2-mod-php \ php-intl php-mbstring php-xml unzip certbot \ roundcube-mysql roundcube roundcube-plugins swaks libnet-ssleay-perl \ mutt unattended-upgrades mariadb-server \ rspamd redis-server opendkim-tools bind9-dnsutils pwgenWhile the server is downloading and installing the packages, let me give you a quick explanation of each package:
- postfix / postfix-mysql
Postfix is the MTA (mail transport agent) that speaks SMTP to send and receive emails. This package installs Postfix with support for MariaDB databases. - dovecot
Dovecot manages the emails on disk and lets users access them via IMAP.- -lmtpd
LMTP (Local Mail Transfer Protocol) provides the glue between Postfix and Dovecot. - -managesieved
Lets you configure automatic processing rules on the server. Like out-of-office emails or filtering incoming emails to folders. - -mysql
Makes Dovecot able to query MariaDB databases.
- -lmtpd
- apache
Web server. Needed for webmail. - php-*
PHP is the programming language that Roundcube (the webmail software) is written in. - mariadb-server
Database server that helps us store control data in a MariaDB database on the mail server. - roundcube / roundcube-mysql
Webmail software that lets you access your emails in any web browser. Roundcube speaks to Dovecot to fetch emails. And to Postfix to send emails. - swaks / libnet-ssleay-perl
The SWiss Army Knife of Smtp. Helpful command-line tool to send test emails to a mail server. The additional SSL package is needed to test encrypted connections. - certbot
Gets a free TLS certificate from Let’s Encrypt for encrypting network communication. - mutt
A console-based program that can speak IMAP and also read Maildirs directly. Very helpful for testing the functionality of your mail server. Think of it as a text-based Thunderbird. - unattended-upgrades
Installs security updates automatically. - rspamd
It reliably detects and blocks spam. Also handles adding DKIM signature to outgoing email to prevent spoofing your domains. - redis-server
Rspamd requires a Redis server as its storage of learned spam emails. - opendkim-tools
Not strictly necessary. But a nice tool to verify DKIM signatures. You know, for science. - bind9-dnsutils
Provides the infamousdigcommand for an easy way to do DNS lookups. - pwgen
A password generator.