Introduction
Setting up your own mail server can be a rewarding project, giving you full control over your email communications. This guide will walk you through deploying a mail server with webmail on Debian 12, ensuring you have a reliable and secure setup. We will use Postfix for the mail transfer agent (MTA), Dovecot for the mail delivery agent (MDA), and Roundcube for the webmail interface.
Prerequisites
Before we begin, ensure you have the following:
- A fresh installation of Debian 12.
- A domain name pointing to your server.
- Basic knowledge of Linux command line.
Step 1: Update Your System
First, update your package lists and upgrade your system packages to ensure everything is up to date.
sudo apt update
sudo apt upgrade -yStep 2: Install Postfix
Postfix is a widely-used MTA that will handle the sending and receiving of emails.
sudo apt install postfix -yDuring the installation, you will be prompted to configure Postfix. Choose “Internet Site” and enter your domain name when asked.
Edit the Postfix configuration file to fine-tune settings:
sudo nano /etc/postfix/main.cfAdd or modify the following lines to match your domain:
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/Restart Postfix to apply the changes:
sudo systemctl restart postfixStep 3: Install Dovecot
Dovecot is the MDA that will handle the storage and retrieval of your emails.
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -yEdit the Dovecot configuration file:
sudo nano /etc/dovecot/dovecot.confEnsure the following lines are included:
protocols = imap pop3 lmtpNow, configure the mail directory and authentication:
sudo nano /etc/dovecot/conf.d/10-mail.confSet the mail location:
mail_location = maildir:~/MaildirConfigure authentication:
sudo nano /etc/dovecot/conf.d/10-auth.confUncomment and modify the following lines:
disable_plaintext_auth = no
auth_mechanisms = plain loginConfigure the user database:
sudo nano /etc/dovecot/conf.d/10-master.confEnsure the service auth section looks like this:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}Restart Dovecot to apply the changes:
sudo systemctl restart dovecotStep 4: Install Roundcube
Roundcube is a web-based IMAP client that provides a user-friendly interface for email.
First, install Apache, PHP, and the necessary PHP extensions:
sudo apt install apache2 php php-cli php-mbstring php-zip php-net-socket php-xml php-gd php-pear php-db php-mysql -yDownload and extract Roundcube:
cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.1/roundcubemail-1.6.1-complete.tar.gz
tar -xvf roundcubemail-1.6.1-complete.tar.gz
sudo mv roundcubemail-1.6.1 /var/www/html/roundcubeSet the correct permissions:
sudo chown -R www-data:www-data /var/www/html/roundcubeCreate a new database for Roundcube:
sudo mysql -u root -pWithin the MySQL prompt:
CREATE DATABASE roundcube;
CREATE USER 'roundcubeuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcubeuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Import the initial Roundcube database schema:
sudo mysql -u roundcubeuser -p roundcube < /var/www/html/roundcube/SQL/mysql.initial.sqlConfigure Roundcube:
sudo cp /var/www/html/roundcube/config/config.inc.php.sample /var/www/html/roundcube/config/config.inc.php
sudo nano /var/www/html/roundcube/config/config.inc.phpModify the following lines:
$config['db_dsnw'] = 'mysql://roundcubeuser:yourpassword@localhost/roundcube';
$config['default_host'] = 'ssl://localhost';
$config['smtp_server'] = 'localhost';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['support_url'] = '';
$config['des_key'] = 'randomstring';
$config['plugins'] = array('archive', 'zipdownload');
$config['skin'] = 'elastic';Restart Apache:
sudo systemctl restart apache2Conclusion
You now have a fully functional mail server with a webmail interface on Debian 12. You can access Roundcube by navigating to http://yourdomain.com/roundcube in your web browser and logging in with your email credentials. Enjoy the control and flexibility of managing your own mail server!

