iRedMail is a script that performs a huge amount of tasks and set up all sorts of services and applications to fulfill any e-mail necessity.

  • Postfix SMTP server.
  • Dovecot IMAP server.
  • Nginx webserver (admin panel and webmail).
  • OpenLDAP, MySQL/MariaDB, or PostgreSQL.
  • Amavised-new (DKIM).
  • SpamAssassin (anti-spam).
  • ClamAV (anti-virus).
  • Roundcube (webmail).
  • SOGo (webmail, calendar, contacts, ActiveSync…).
  • Fail2ban (security).
  • mlmmj (mailing list).
  • Netdata (monitoring).
  • iRedAPD Postfix (greylisting).

Set the domain name:

sudo apt update && sudo apt upgrade -y
sudo hostnamectl set-hostname mail.example.com
sudo nano /etc/hosts

    127.0.0.1 mail.example.com mail localhost

Download from any of the methods:

git clone https://github.com/iredmail/iRedMail/
cd iRedMail
chmod +x iRedMail.sh
sudo bash iRedMail.sh

    OR

wget https://github.com/iredmail/iRedMail/archive/1.4.0.tar.gz
tar xvf 1.3.2.tar.gz
cd iRedMail-1.3.2/
chmod +x iRedMail.sh
sudo bash iRedMail.sh

Get the latest at [Link].

Follow the screens:

Your mail server is already working and as a good practice, it is now ready to start SSL/TLS certificate on the webserver.

sudo apt install certbot
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.example.com -w /var/www/html/
sudo nano /etc/nginx/templates/ssl.tmpl

Change the following lines accordingly for NGINX:

ssl_certificate /etc/letsencrypt/live/mail.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.example.com/privkey.pem;

Test and reload the webserver:

sudo nginx -t
sudo systemctl reload nginx

Now, install the certificate in the Postfix (SMTP server) and Decovet (IMAP server):

sudo nano /etc/postfix/main.cf

Change the following lines accordingly:

smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.example.com/chain.pem

Same for the Decovet (IMAP server):

sudo nano /etc/dovecot/dovecot.conf

Change the following lines accordingly:

ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

Reload both services:

sudo systemctl reload postfix
sudo systemctl reload dovecot