GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et configurer Postfix sur Ubuntu 18.04

Postfix est un serveur de messagerie gratuit développé à l'origine comme une alternative plus simple et plus sécurisée à sendmail. Ce tutoriel vous montrera comment configurer un serveur de messagerie postfix sur votre serveur Ubuntu 18.04. Postfix vous permet de gérer des utilisateurs virtuels et pour cela, nous créons un groupe virtuel. Nous gérerons facilement notre serveur de messagerie en utilisant postfixadmin pour les utilisateurs virtuels et dovecot pour les e-mails entrants.

Ce que vous devez comprendre

Pour recevoir du courrier un pré-requis est d'avoir une IP fixe, un serveur DNS tournant soit sur votre propre serveur soit chez un hébergeur sur lequel vous pourrez modifier les enregistrements. Définissons quelques acronymes qui seront utilisés sur cette configuration :

  • Suffixe est l'agent de transfert de courrier (MTA ) utilisé pour envoyer et recevoir des e-mails
  • Colombier est l'agent de livraison local (LDA ) qui utilisent les serveurs IMAP (Internet Messaging Application Protocol) et POP3 (Post Office Protocol).
  • SASL défini par Simple Authentication et Secure Layer, il ajoute une authentification entre l'utilisateur et le serveur pour sécuriser les échanges.
  • Administrateur Postfix l'interface Web qui vous permet de gérer les boîtes aux lettres, les domaines virtuels et les alias
  • LEMP : le serveur web avec Nginx et PHP afin d'accéder à postfixadmin et de gérer facilement les utilisateurs virtuels et les domaines, MySQL pour stocker toutes les informations.

Il existe deux types de domaines dans Postfix :

  • Domaines locaux utilisé pour envoyer des e-mails aux utilisateurs du système répertoriés dans /etc/passwd fichier.
  • Domaines virtuels qui n'ont pas besoin de compte système présent dans le /etc/passwd dossier. Il permet de gérer très facilement des milliers de comptes de messagerie dans le système de serveur de messagerie en utilisant MySQL, PostgreSQL ou LDAP pour la gestion des comptes d'utilisateurs.

Étape 1) Installer et configurer Postfixadmin

Postfixadmin est un module web qui vous permet de manipuler facilement des domaines virtuels et des utilisateurs dans une base de données.

a) Télécharger postfixadmin

Tout d'abord, nous allons installer les packages requis

# apt install php-imap php-mbstring php7.2-imap php7.2-mbstring
Reading package lists... Done
Building dependency tree 
Reading state information... Done
...
...

Normalement, postfixadmin est présent sur les dépôts par défaut d'Ubuntu 18.04 mais il essaiera d'installer Apache et PostgreSQL au lieu de Nginx et MySql. Donc, pour conserver notre configuration, nous allons télécharger la dernière version actuelle 3.2 depuis la source sur le projet du site Github et enregistrez-le dans /opt dossier

# wget -P /opt https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
--2018-06-11 21:53:14--  https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.2.tar.gz
Resolving github.com (github.com)... 192.30.255.113, 192.30.255.112
Connecting to github.com (github.com)|192.30.255.113|:443... connected.
HTTP request sent, awaiting response... 302 Found

Allez maintenant dans ce dossier et décompressez-le.

# cd /opt && tar xvf postfixadmin-3.2.tar.gz

Maintenant, nous devrions le renommer

# mv postfixadmin-postfixadmin-3.2/ postfixadmin

Postfixadmin utilise un script appelé setup.php que nous utiliserons via le serveur Web lors de l'installation. Sur la version précédente de postfix (3.1 et plus ancienne), ce script est directement dans le dossier racine de Postfixadmin mais dans la version actuelle (3.2), il est contenu dans le sous-répertoire public du dossier postfixadmin. Normalement nous devrions déplacer postfixadmin vers le dossier racine de notre serveur web Nginx mais avec cette nouvelle version, nous allons seulement créer un lien symbolique du dossier public qui contient le script puis le renommer pour plus de sécurité

# ln -s /opt/postfixadmin/public/ /var/www/html/pfa
root@li1002-235:~# ls -l /var/www/html/
total 4
-rw-r--r-- 1 root root 612 Jun 10 04:51 index.nginx-debian.html
lrwxrwxrwx 1 root root  25 Jun 12 04:01 pfa -> /opt/postfixadmin/public/

b) Créer la base de données postfix

Nous devons maintenant nous connecter à la base de données mysql pour certaines configurations

# mysql -u root -p
Enter password:

Créez ensuite la base de données et l'utilisateur

mysql> CREATE DATABASE postfix;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfix-db-password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

c) Configurer postfixadmin

Maintenant que nous avons configuré la base de données, nous devons l'indiquer à postfixadmin afin qu'il sache où obtenir les informations. Pour cela, créez le /opt/postfixadmin/config.local.php fichier et ajoutez le contenu ci-dessous

# vim /opt/postfixadmin/config.local.php

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix-db-password';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>

postfixadmin nécessite une autorisation pour un sous-dossier nommé templates_c ça n'existe pas. Donc pour éviter certaines erreurs lors de l'installation comme ci-dessous,

Nous devrions avoir besoin de le créer manuellement et de donner www-data propriété à l'aide de la commande chown.

# mkdir /opt/postfixadmin/templates_c && chmod 755 -R /opt/postfixadmin/templates_c
# chown -R www-data:www-data /opt/postfixadmin/templates_c

Ensuite, réessayez, vous verrez que cela fonctionne maintenant et qu'il vérifie toute la configuration, affiche la version de votre php et d'Ubuntu

Maintenant, nous devons créer un mot de passe pour la configuration et générer son hachage

Maintenant, il vous permettra de créer le compte superadmin et vous utiliserez le mot de passe de configuration que vous avez créé. Mais pour cela, vous devez modifier le /opt/postfixadmin/config.local.php fichier afin d'ajouter la valeur du hachage du mot de passe généré. Procédez ensuite à la création du compte superadmin

Vous verrez maintenant que le compte a été ajouté.

Maintenant, comme vous pouvez le voir, vous pouvez vous connecter à postfixadmin avec le compte en utilisant le lien http://votre-ip-ou-domaine/pfa

Si cette page ne peut pas apparaître, veuillez vérifier le fichier journal des erreurs nginx

# tail -n 20 -f /var/log/nginx/error.log

Et assurez-vous d'avoir les bonnes permissions sur le /opt/postfixadmin/templates_c dossier. Vous pouvez voir la description de chaque menu lorsque vous vous connectez.

d) Créer des domaines virtuels, des utilisateurs et des alias

Nous allons maintenant créer les domaines virtuels, puis les utilisateurs. Un domaine est un nom de domaine tel que mytuto.com . Vous pouvez avoir des e-mails sur votre domaine en utilisant le même serveur. Lorsque vous démarrez, vous n'avez aucun domaine. Pour ajouter un domaine, accédez à Liste des domaines -> Nouveau domaine .

Entrez ensuite les informations sur le domaine. Vous pouvez limiter le nombre d'alias et de boîtes aux lettres. N'oubliez pas d'ajouter l'enregistrement MX. Lorsque vous avez terminé de choisir vos valeurs, ajoutez le domaine.

Maintenant que notre domaine virtuel est créé, vous pouvez voir dans la liste des domaines

Nous pouvons maintenant créer nos utilisateurs virtuels. Pour ce faire, allez dans Liste virtuelle -> Ajouter une boîte aux lettres .

Nous pouvons également créer des alias. Ce sont des adresses email qui redirigeront les mails vers un autre compte. Normalement, tout serveur de messagerie doit avoir une adresse e-mail abus , afin que nous puissions par exemple signaler un spam provenant d'un domaine. Créez donc simplement un abus d'alias de votre domaine vers votre utilisateur que vous venez de créer plus tôt. Pour ce faire, allez dans Liste virtuelle -> Ajouter un alias .

Vous pouvez créer tous ces paramètres virtuels à la fin mais cela nous aidera à l'étape suivante pour la configuration de postfix.

Étape 2) Installer et configurer postfix

a) Installer postfix

Nous pouvons maintenant installer les packages postfix.

# apt install postfix postfix-mysql sasl2-bin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  db-util db5.3-util libmysqlclient20 ssl-cert
Suggested packages:
  procmail postfix-pgsql postfix-ldap postfix-pcre postfix-lmdb
...
...

Vous devrez répondre à deux questions sur le type de courrier et le nom de votre serveur de messagerie. Assurez-vous de remplacer le nom d'hôte et domaine valeurs avec les vôtres

  • le type de configuration de messagerie :site Internet
  • le nom de messagerie du système :hostname.domain.com

Assurez-vous que sasl s'exécute au démarrage en éditant son fichier de configuration

# vim /etc/default/saslauthd

# Should saslauthd run automatically on startup? (default: no)
START=yes

Redémarrez maintenant le service

# systemctl restart saslauthd

Comme nous configurons un serveur de messagerie avec des utilisateurs virtuels, nous avons besoin d'un propriétaire pour toutes les boîtes aux lettres. Nous allons donc créer un utilisateur système qui sera utilisé par tous les utilisateurs virtuels pour accéder au courrier électronique sur le serveur. Commencez par créer le propriétaire du groupe et le dossier qui stockera les boîtes aux lettres.

# groupadd -g 5000 vmail && mkdir -p /var/mail/vmail

Créez maintenant le propriétaire

# useradd -u 5000 vmail -g vmail -s /usr/sbin/nologin -d /var/mail/vmail

Assurez-vous de donner l'autorisation du répertoire de messagerie au propriétaire afin qu'il puisse stocker les e-mails dans les répertoires appropriés.

# chown -R vmail:vmail /var/mail/vmail

Si vous ne le faites pas, dovecot ne pourra pas créer les dossiers requis pour stocker les e-mails.

b) Créer les fichiers de configuration pour la base de données

Créez maintenant un dossier qui contiendra des fichiers de base de données

# mkdir -p /etc/postfix/sql

Postfix a besoin de 03 fichiers de base de données qui lui permettront d'accéder à la base de données que nous avons créée précédemment :

  • Domaines pour contenir la liste des noms de domaine hébergés sur le serveur. cela permettra à postfix de déterminer si notre serveur est en charge d'un domaine (mytuto.com) lorsqu'il reçoit un e-mail ([email protected]) dessus. Si c'est le cas, cela signifie que le domaine est dans notre base de données.
# vim /etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'

Nous allons activer la configuration et l'ajouter automatiquement au /etc/postfix/main.cf fichier et rechargez la configuration du postfix pour éviter d'avoir à le faire manuellement. Ainsi, le fichier sera mis à jour chaque fois que vous utiliserez cette commande avec de nouvelles valeurs.

# postconf -e virtual_mailbox_domains=mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

Nous pouvons maintenant vérifier la configuration. Nous lancerons une commande qui exécutera la requête contenue dans le fichier afin de rechercher un domaine dans notre base de données. Un élément (le domaine recherché) doit être retourné ou rien si le domaine n'est pas présent.

# postmap -q mytuto.com mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
mytuto.com

Comme vous pouvez le voir, postfix est capable de récupérer les domaines stockés dans notre base de données

  • Boîte aux lettres pour stocker toutes les adresses e-mail virtuelles. Il sera utilisé pour vérifier également si les boîtes aux lettres existent
# vim /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

Maintenant, mettons à jour le fichier de configuration

# postconf -e virtual_mailbox_maps=mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf

Exécutez la commande pour tester la requête sur la base de données

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
mytuto.com/alain/
  • Alias pour contenir les différents alias de messagerie.
# vim /etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfix
password = postfix-db-password
hosts = 127.0.0.1
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Ajoutez maintenant la configuration

# postconf -e virtual_alias_maps=mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf

Exécutez maintenant la commande pour tester la requête. C'est l'utilisateur destinataire ([email protected]) qui devrait être affiché et non l'adresse de l'abus. Cela montre que postfix peut faire la correspondance.

# postmap -q [email protected] mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
[email protected]

Assurez-vous que ces fichiers ne sont pas lisibles par les utilisateurs normaux car les mots de passe sont stockés en clair.

# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root root 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root root 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root root 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

Pour que postfix lise ces fichiers, nous pouvons changer le propriétaire du groupe en postfix

# chgrp postfix /etc/postfix/sql/mysql_*.cf
# ls -l /etc/postfix/sql/
total 12
-rw-r--r-- 1 root postfix 138 Jun 13 06:53 mysql_virtual_alias_maps.cf
-rw-r--r-- 1 root postfix 140 Jun 13 05:18 mysql_virtual_domains_maps.cf
-rw-r--r-- 1 root postfix 144 Jun 13 07:04 mysql_virtual_mailbox_maps.cf

c) Configurer le suffixe

Nous allons maintenant éditer manuellement le fichier de configuration principal de postfix. Donc, faites une copie avant de modifier

# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

Nous allons maintenant activer SASL pour forcer l'authentification pour l'envoi d'e-mails et transmettre l'authentification à Dovecot. Assurez-vous d'ajouter des lignes ci-dessous

# vim /etc/postfix/main.cf

# Allow authenticated users to send email, and use Dovecot to authenticate them. Tells Postfix to use Dovecot for authentication
smtpd_sasl_type = dovecot
## Path to the Postfix auth socket
smtpd_sasl_path = private/auth
## Tells Postfix to let people send email if they've authenticated to the server.
## Otherwise they can only send if they're logged in (SSH)
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
# Enable authentication only for those with a TLS connection.
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
# Tells Postfix who can send email: SASL-authenticated users connecting from a network specified in 'mynetworks'
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

Modifions maintenant le fichier /etc/postfix/master.cf fichier de configuration. C'est le fichier de configuration du processus. Nous allons activer les ports SMTP sécurisés en ajoutant ou décommentant les lignes ci-dessous et en faire une copie avant

# cp /etc/postfix/master.cf /etc/postfix/master.cf.bak
# vim /etc/postfix/master.cf
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Vous pouvez maintenant exécuter le postconf -n commande pour vérifier certaines erreurs

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
...
...

Si vous n'avez aucun message d'avertissement, cela signifie que vos fichiers ne contiennent pas d'erreurs. Vous pouvez maintenant redémarrer le service postfix

# systemctl restart postfix
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/lib/systemd/system/postfix.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2018-06-13 10:16:02 UTC; 27s ago
  Process: 12225 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 12225 (code=exited, status=0/SUCCESS)

Étape 3) Installer et configurer Dovecot

Maintenant que Postfix est installé et configuré, nous devons installer postfix pour gérer les protocoles pop et imap, qui nous permettent de récupérer nos emails.

a) Installation du pigeonnier

Les packages Dovecot sont présents dans les référentiels par défaut d'Ubuntu 18.04. Nous allons l'installer avec le support mysql. Nous allons installer tamis ce qui est utile car il placera automatiquement les mails dans les dossiers correspondants. Cela signifie que, pour chaque domaine, il créera un dossier correspondant contenant le dossier correspondant d'un utilisateur virtuel pour stocker ses fichiers de messagerie.

# apt install dovecot-imapd dovecot-mysql dovecot-managesieved
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  dovecot-core dovecot-sieve libexttextcat-2.0-0 libexttextcat-data
Suggested packages:
...
...

Comprenez cela, si vous ne voulez pas utiliser tamis , pour chaque domaine, vous devrez probablement créer manuellement les dossiers correspondants afin de stocker ses emails et ce pas facile si vous avez plusieurs domaines.

b) Configuration du pigeonnier

La configuration de Dovecot est contenue dans plusieurs fichiers dans /etc/dovecot/conf.d . Tout d'abord, vérifiez le contenu du /etc/dovecot/dovecot.conf pour que ces lignes ne soient pas commentées

!include_try /usr/share/dovecot/protocols.d/*.protocol
!include conf.d/*.conf

Allez maintenant dans le dossier contenant les fichiers de configuration

# cd /etc/dovecot/conf.d

Nous allons modifier :

  • le 10-auth.conf fichier pour modifier les mécanismes de connexion en ajoutant ou décommentant les lignes. Dovecot utilise les utilisateurs système par défaut mais nous utilisons les utilisateurs Mysql
# cp 10-auth.conf 10-auth.conf.bak
# vim 10-auth.conf

auth_mechanisms = plain login
#!include auth-system.conf.ext
!include auth-sql.conf.ext
  • le auth-sql.conf.ext fichier pour la configuration sql
# cp auth-sql.conf.ext auth-sql.conf.ext.bak
# vim auth-sql.conf.ext

passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/vmail/%d/%n
}
  • modifions maintenant le /etc/dovecot/dovecot-sql.conf.ext pour indiquer à dovecot comment se connecter à la base de données SQL
# cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.bak
# vim /etc/dovecot/dovecot-sql.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=postfix-db-password
password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';
default_pass_scheme = MD5-CRYPT
  • Nous allons maintenant modifier le 10-mail.conf fichier pour configurer le répertoire d'emplacement du courrier
# cp 10-mail.conf 10-mail.conf.bak
# vim 10-mail.conf
mail_location = maildir:/var/mail/vmail/%d/%n/Maildir
mail_privileged_group = mail
  • Nous allons maintenant modifier le 10-master.conf fichier pour la connexion au socket.
# cp 10-master.conf 10-master.conf.bak
# vim 10-master.conf

service auth {
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }

  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

  user = dovecot
}
  • Nous devons maintenant configurer le LDA 15-lda.conf fichier pour indiquer le tamis afin d'organiser automatiquement le courrier dans le dossier correspondant
# cp 15-lda.conf 15-lda.conf.bak
# vim 15-lda.conf

protocol lda {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Nous devrions donner la permission si nous voulons que l'utilisateur de vmail puisse lancer dovecot

# chgrp vmail /etc/dovecot/dovecot.conf

Vous pouvez maintenant redémarrer le service pigeonnier

# systemctl restart dovecot

Vous pouvez vérifier le journal de messagerie pour toute erreur

# tail -n 20 -f /var/log/mail.log

c) Intégrer dovecot à postfix

Maintenant que nous avons configuré dovecot, nous devons indiquer postfix pour qu'il fonctionne avec dovecot. Modifiez le fichier de configuration master postfix et ajoutez les lignes ci-dessous à la fin du fichier

# vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

Modifiez maintenant le fichier de configuration principal de postfix

 # vim /etc/postfix/main.cf
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

Puis redémarrez postfix

# systemctl restart postfix

Vous pouvez vérifier le journal de messagerie pour toute erreur

# tail -n 20 -f /var/log/mail.log
Jun 14 08:10:00 myserver postfix/postfix-script[28361]: starting the Postfix mail system
Jun 14 08:10:00 myserver postfix/master[28363]: daemon started -- version 3.3.0, configuration /etc/postfix

Vous pouvez voir que toute la configuration est bonne. maintenant nous devons faire un test

Étape 4) Test du serveur de messagerie

Pour les tests en ligne de commande, il faut installer le package mailutils avant d'envoyer un email

# apt install mailutils
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
 guile-2.0-libs libgc1c2 libgsasl7 libkyotocabinet16v5 libltdl7 libmailutils5 libntlm0 libpython2.7 libpython2.7-minimal libpython2.7-stdlib
 mailutils-common
...
...

Nous devons maintenant envoyer des e-mails et vérifier si les dossiers correspondant aux domaines et aux utilisateurs sont effectivement créés. Pour cela, nous allons d'abord envoyer un mail à notre utilisateur actuel créé dans postfixadmin lors de sa configuration

# echo "Hello Alain" | mail -s "test mail" [email protected]

Tout d'abord, vérifions le journal des e-mails

 # tail -n 20 -f /var/log/mail.log

Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: from=<[email protected]>, size=384, nrcpt=1 (queue active)
Jun 14 08:17:04 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:17:04 myserver postfix/pipe[28406]: 1715240BF9: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:17:04 myserver postfix/qmgr[28374]: 1715240BF9: removed

Nous pouvons voir que le courrier a été envoyé avec succès. Vérifions maintenant si les dossiers correspondants ont été créés

# ls -R /var/mail/vmail/
/var/mail/vmail/:
mytuto.com

/var/mail/vmail/mytuto.com:
alain

/var/mail/vmail/mytuto.com/alain:
Maildir

/var/mail/vmail/mytuto.com/alain/Maildir:
cur  dovecot.index.cache  dovecot.index.log  dovecot-uidlist  dovecot-uidvalidity  dovecot-uidvalidity.5b222480  new  tmp

/var/mail/vmail/mytuto.com/alain/Maildir/cur:

/var/mail/vmail/mytuto.com/alain/Maildir/new:
'1528964224.M129536P28407.myserver,S=455,W=467'

/var/mail/vmail/mytuto.com/alain/Maildir/tmp:

Vous pouvez voir que les dossiers sont automatiquement présents. Pour une meilleure vue, essayons avec l'arbre de commandes. Commencez par l'installer

 apt install tree

Voyons maintenant les dossiers de messagerie avec une meilleure vue

# tree /var/mail/vmail/
/var/mail/vmail/
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

6 directories, 6 files

Maintenant, vous pouvez parfaitement voir. Nous pouvons faire un autre test en créant un nouveau domaine virtuel et un nouvel utilisateur sur postfixadmin. Créons le domaine virtuel example.com

et l'utilisateur virtuel [email protected]

Envoyons maintenant un mail au nouvel utilisateur virtuel

# echo "Hello Francois" | mail -s "test config" [email protected]

Vérifiez maintenant le journal des e-mails

# tail -n 20 -f /var/log/mail.log

Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: from=<[email protected]>, size=393, nrcpt=1 (queue active)
Jun 14 08:35:10 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 08:35:10 myserver postfix/pipe[28481]: CE43F40C5E: to=<[email protected]>, relay=dovecot, delay=0.06, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 08:35:10 myserver postfix/qmgr[28374]: CE43F40C5E: removed

Vérifiez maintenant l'arborescence des dossiers

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   └── 1528965310.M888145P28482.myserver,S=468,W=480
│           └── tmp
└── mytuto.com
    └── alain
        └── Maildir
            ├── cur
            ├── dovecot.index.cache
            ├── dovecot.index.log
            ├── dovecot-uidlist
            ├── dovecot-uidvalidity
            ├── dovecot-uidvalidity.5b222480
            ├── new
            │   └── 1528964224.M129536P28407.myserver,S=455,W=467
            └── tmp

Vous pouvez voir que nous avons deux sous-répertoires avec les domaines mytuto.com et exemple.com dont le fichier pour chaque utilisateur virtuel des différents domaines. Faisons maintenant le dernier test, les utilisateurs virtuels vont s'échanger des emails

# echo "Hello Francois, it's Alain" | mail -s "Subject" -aFrom:alain\<[email protected]\> [email protected]

Vérifier le journal des e-mails

# tail -n 20 -f /var/log/mail.log

Jun 14 23:15:01 myserver postfix/pickup[28373]: 8558240BDA: uid=0 from=<[email protected]>
Jun 14 23:15:01 myserver postfix/cleanup[28595]: 8558240BDA: message-id=<[email protected]>
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: from=<[email protected]>, size=398, nrcpt=1 (queue active)
Jun 14 23:15:01 myserver dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
Jun 14 23:15:01 myserver postfix/pipe[28597]: 8558240BDA: to=<[email protected]>, relay=dovecot, delay=0.05, delays=0.02/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service)
Jun 14 23:15:01 myserver postfix/qmgr[28374]: 8558240BDA: removed

Nous pouvons maintenant voir le dossier de messagerie

# tree /var/mail/vmail/
/var/mail/vmail/
├── example.com
│   └── francois
│       └── Maildir
│           ├── cur
│           ├── dovecot.index.cache
│           ├── dovecot.index.log
│           ├── dovecot-uidlist
│           ├── dovecot-uidvalidity
│           ├── dovecot-uidvalidity.5b2228be
│           ├── new
│           │   ├── 1528965310.M888145P28482.myserver,S=468,W=480
│           │   └── 1528966081.M582572P28598.myserver,S=455,W=467
...
...

vous pouvez voir que le dossier new contient maintenant deux fichiers. Nous pouvons ouvrir le fichier contenant le courrier

# cat /var/mail/vmail/example.com/francois/Maildir/new/1528966081.M582572P28598.hostname\,S\=455\,W\=467 
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: by myserver.domain.com (Postfix, from userid 0)
        id 8558240BDA; Thu, 14 Jun 2018 23:15:01 +0000 (UTC)
Subject: Subject
From: alain<[email protected]>
To: <[email protected]>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <[email protected]>
Date: Thu, 14 Jun 2018 23:15:01 +0000 (UTC)

Hello Francois, it's Alain

Vous pouvez voir le contenu qui montre que cela fonctionne également.

Conclusion

Vous savez comment configurer un système de messagerie entièrement fonctionnel avec Postfix, Dovecot et Postfixadmin avec Nginx. Le plus important est de donner la bonne permission pour ne pas faire face à des problèmes. Vous devriez remarquer que vous pouvez utiliser dovecot avec d'autres protocoles au lieu de LDA. La prochaine fois nous vous montrerons comment installer RoundCube pour que les utilisateurs virtuels puissent avoir une interface web pour lire facilement leurs emails et nous intégrerons PhpMyAdmin pour manipuler facilement la base de données. N'hésitez pas à nous faire part de vos commentaires pour améliorer ce tutoriel.

Lire aussi :

  • Comment configurer le serveur de messagerie Postfix sur Ubuntu 16.04 (Dovecot - MySQL)
  • Comment configurer Postfix avec Webmail sur Ubuntu 18.04
  • How to Setup Greylisting Service on Postfix Mail Server
  • How to Setup Postfix Mail Server with DKIM
  • How to Setup Mail Server Using Postfix, MariaDB, Dovecot and Roundcube

Ubuntu
  1. Comment installer et configurer Algo VPN Server sur Ubuntu 20.04

  2. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  3. Comment installer et configurer Squid Proxy sur Ubuntu 20.04

  4. Comment installer et configurer Postfix sur Ubuntu 20.04

  5. Comment installer et configurer le serveur Web Apache sur Ubuntu 13.10

Comment installer et configurer le serveur LAMP sur Ubuntu

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer le serveur VNC sur Ubuntu 20.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer et configurer le serveur DNS sur Ubuntu 16.04 LTS

Comment installer et configurer Parse Server sur Ubuntu 20.04