Skip to content

Documentation Mail

Namurois Thomas edited this page Aug 31, 2021 · 18 revisions

Arborescence

tree-mail

Organisation des configurations

Les fichiers de configurations pour postfix se trouve dans le répertoire /etc/postfix

  • /etc/postfix/main.cf est le fichier important pour la configuration smtp de notre service mail. Toutes modifications et ajout de paramètre se feront dedans.

Les fichiers de configurations pour dovecot se trouve dans le répertoire /etc/dovecot

  • /etc/dovecot/dovecot.conf contient les éléments de configurations de base du service.
  • /etc/dovecot/10-mail.conf contient la configurations pour la réception des mails.
  • /etc/dovecot/10-auth.conf contient les configurations d'authentifaction au service.
  • /etc/dovecot/dovecot-sql.conf.ext contient la configurations permettant la connexion à une base de données.

Maintenance

Procédure pour lancer le serveur

Pour lancer le serveur il nous faut d'abord créer une image d'un Dockerfile contenant l'installation des services dovecot et postfix ainsi que la copie des fichiers de configurations adapté à notre besoin. Nous utiliserons ensuite cette image dans un container.

Pour construire le container:
docker build -t nomImage:latest ./

Pour lancer le container:
sudo docker run -itd --name=nomContainer -h containerHostName -p 25:25 -p 587:587 -p 465:465 -p 110:110 -p 995:995 -p 143:143 -p 993:993 nomImage:latest

Procédure pour modifier le service mail

Pour modifier la configuration du service mail, il faudra d'abord stop le container et le supprimer. Une fois les modifications faites sur les fichiers de configurations, vous devrez refaire la procédure pour lancer le serveur afin de mettre à jour l'image déjà créée puis relancer un container avec la nouvelle version de l'image.

Pour stop le container:
docker stop nomContainer

Pour supprimer le container:
docker container rm nomContainer

Pour construire le container:
docker build -t nomImage:latest ./

Pour lancer le container:
sudo docker run -itd --name=nomContainer -h containerHostName -p 25:25 -p 587:587 -p 465:465 -p 110:110 -p 995:995 -p 143:143 -p 993:993 nomImage:latest

Mettre à jour postfix

Pour mettre à jour postfix il faudra: Stop le service:
service postfix stop

Télécharger les listes de packages à partir des référentiels:
apt-get update

Mettre à jour le packages postfix:
apt-get upgrade postfix

Relancer le service:
service postfix start

Mettre à jour dovecot

Pour mettre à jour dovecot il faudra: Stop le service:
service dovecot stop

Télécharger les listes de packages à partir des référentiels:
apt-get update

Mettre à jour le packages dovecot:
apt-get upgrade dovecot

Relancer le service:
service dovecot start

Modifier un fichier du service mail

Soit modifier les fichiers dans le container
Pour rentrer dans le container:
docker exec -ti nomContainer bash

Modifier les fichiers de configurations:
nano /CheminFichier/nomDuFichier

Sortir du container:
exit

Relancer le container pour prendre en compte les modifications demandant un redémarrage:
docker restart nomContainer

Soit modifier les fichiers sur le vps

Modifier les fichiers de configurations:
nano /CheminFichier/nomDuFichier

Recréer le container avec les nouvelles modifications
Procédure lancement de serveur

Ajouter une adresse dans le virtual

Pour stop le container:
docker stop nomContainer

Pour supprimer le container:
docker container rm nomContainer

Ajouter l'adresse mail dans le fichier virtual:
nano /cheminVersVirtual/virtual

Relancer le container du mail:
Suivre l'étape lancement de container

TroubleShooting

Que ce soit pour postfix ou dovecot, un fichier reprenant la totalité des logs existe pour chacun des deux services.
Pour lire le fichier nous allons souvent utiliser "tail /var/log/mail.info" afin de seulement les 10 dernières entrées du fichier de logs. Question de lisibilité.

Postfix

Fichier logs = /var/log/mail.info

Dovecot

Fichier logs = /var/log/dovecot.log

Erreur fréquente

  • Mailq indique connect to alt2.gmail-smtp-in.l.google.com[2404:6800:4003:c01::1a]:25: Network is unreachable

    Ce genre d'erreur peut apparaitre lorsque vous essayez d'envoyer un mail depuis un ordinateur via le port 25 d'un serveur mail. Le problème vient d'un blocage prévu par les fournisseurs d'accès internet (FAI) pour empêcher l'émission de spam via les connexions ADSL de leurs client. Un moyen de contourner l'erreur, serait de passer par le serveur mail par défaut du FAI, le second est celui le plus fréquemment utilisé dans notre situation. Il consiste à se connecter via le port 587 pour smtp ou via le port 465 pour smtps. 587 étant un port par défaut pour smtp, il faut seulement faire en sorte qu'il écoute.

    Pour cela, lors de la création du container mail, il est important de spécifier les ports à écouté. Voici la commande:
    sudo docker run -itd --name=mail -h l1-5.ephec-ti.be -p 587:587 -p 465:465 -p 110:110 -p 995:995 -p 143:143 -p 993:993 mail:latest

    Attention : Les ports supplémentaires sont ceux par défauts pour imap et pop

  • Dans le cas ou il vous est impossible de vous connecter à postfix, lors d'un telnet sur le port 587 par exemple "telnet: Unable to connect to remote host: Connection refused", que la commande echo "text" | mail -s "text" addresse@mail.com ne retourne aucune ereur et que dans la mailq il est indiqué "postqueue: fatal: Queue report unavailable - mail system is down"

    Il est possible que cela soit à cause du fait que postfix ne soit pas start. Il se peut que postfix ne se lance pas lors de la création du container, on peut le vérifier par:
    sudo postfix status

    Si le retour de cette commande correspond à:
    postfix/postfix-script: the Postfix mail system is not running

    Alors en effet postfix n'est pas en marche. Il vous suffit de faire la commande suivante afin de le lancer:
    sudo postfix start

Clone this wiki locally