« Postfix » : différence entre les versions
Ligne 171 : | Ligne 171 : | ||
==== Test du serveur IMAP ==== | ==== Test du serveur IMAP ==== | ||
* On se connecte au serveur sur le port '''imap 143''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">telnet 10.0.0.44 143</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">telnet 10.0.0.44 143</span><br /> | ||
Trying 10.0.0.44...<br /> | Trying 10.0.0.44...<br /> | ||
Ligne 178 : | Ligne 180 : | ||
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL<br />ACL2=UNION] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc. See COPYING for distribution information. }} | * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL<br />ACL2=UNION] Courier-IMAP ready. Copyright 1998-2011 Double Precision, Inc. See COPYING for distribution information. }} | ||
* Le serveur attend un login est un mot de passe. Pour cela, on utilise la commande '''LOGIN <user> <password>''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">01 LOGIN alice alice</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">01 LOGIN alice alice</span><br /> | ||
1 OK LOGIN Ok. }} | 1 OK LOGIN Ok. }} | ||
* On demande la liste des répertoires grâce à la commande '''LIST "" "*"''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">02 LIST</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">02 LIST</span><br /> | ||
Ligne 194 : | Ligne 198 : | ||
* LIST (\HasNoChildren) "." "INBOX.virus"<br /> | * LIST (\HasNoChildren) "." "INBOX.virus"<br /> | ||
2 OK LIST completed }} | 2 OK LIST completed }} | ||
* On accès au dossier des message reçus dans le dossier '''INBOX''' avec la commande '''SELECT <nom_dossier>''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">3 SELECT INBOX</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">3 SELECT INBOX</span><br /> | ||
Ligne 203 : | Ligne 209 : | ||
* OK [MYRIGHTS "acdilrsw"] ACL<br /> | * OK [MYRIGHTS "acdilrsw"] ACL<br /> | ||
3 OK [READ-WRITE] Ok }} | 3 OK [READ-WRITE] Ok }} | ||
* On liste les message reçus dans le dossier INBOX avec la commande '''SELECT <nom_dossier>''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">4 UID FETCH 1:* RFC822.SIZE</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">4 UID FETCH 1:* RFC822.SIZE</span><br /> | ||
* 1 FETCH (UID 1 RFC822.SIZE 280)<br /> | * 1 FETCH (UID 1 RFC822.SIZE 280)<br /> | ||
4 OK FETCH completed. }} | 4 OK FETCH completed. }} | ||
* On consulte le message avec l''''UID 1''' en saisisant la commande '''UID FETCH <UID_message> BODY[]''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">5 UID FETCH 4 BODY[]</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">5 UID FETCH 4 BODY[]</span><br /> | ||
Ligne 225 : | Ligne 232 : | ||
* 4 FETCH (FLAGS (\Seen \Recent))<br /> | * 4 FETCH (FLAGS (\Seen \Recent))<br /> | ||
5 OK FETCH completed. }} | 5 OK FETCH completed. }} | ||
* On ferme la connexion avec la commande '''LOGOUT''' : | |||
{{ Box Console | objet=<span style="color:blue;font-family:sans-serif">6 logout</span><br /> | {{ Box Console | objet=<span style="color:blue;font-family:sans-serif">6 logout</span><br /> |
Version du 30 janvier 2014 à 02:23
Présentation
Postfix est un serveur mail SMTP (Simple Mail Transfer Protocol) appelé aussi MTA pour Mail Transport Agent. Son rôle est d'assurer le traitement des mails aussi bien à l'envoi qu'à la réception.
Pour que les utilisateurs puissent récupérer leur message, Postfix devra être couplé à un service de relève de message basé sur le protocole POP (Post Office Protocol) et/ou IMAP (Internet Message Access Protocol). Nous utiliseront le service courier. L'authentification des utilisateurs sur le serveur mail s'effectuera par l'intermédiaire du daemon saslauth.
Installation
Il sera nécessaire d'installer les services suivants :
- Postfix, qui est le MTA;
- Courier-Pop, qui est le serveur POP pour la récupération des messages par l'utilisateur via un client de messagerie;
- Courier-Imap, qui est le serveur IMAP pour la récupération des messages par l'utilisateur via un client de messagerie ou un webmail;
- Saslauth, qui est le service d'authentification des utilisateurs. [À mettre en place plus tard]
|
|
Configuration
Fichier /etc/postfix/main.cf
- Le fichier de configuration main.cf contient les éléments de configuration sur le MTA Postfix.
smtpd_banner = $myhostname ESMTP $mail_name biff = no append_dot_mydomain = no readme_directory = no myhostname = alice.lan alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = localhost, alice.lan, localhost.alice.lan relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/124 [::1]/128 home_mailbox = Maildir/ mailbox_command = procmail -a "$EXTENSION" recipient_delimiter = + inet_interfaces = all message_size_limit = 5120000 mailbox_size_limit = 10240000
Fichier /etc/procmailrc
- Le daemon procmail interrogera ce fichier pour chaque mail entrant. On y définira la localisation des boîtes mails.
MAILDIR=$HOME/Maildir DEFAULT=$MAILDIR/
Création du répertoire mail
Dans notre cas nous disposons de l'utilisateur UNIX alice sur notre serveur avec pour répertoire personnel /home/alice.
- Création des répertoires pour le courrier électronique de alice :
|
|
- Pour que cette opération s'effectue automatiquement à chaque ajout d'un nouvel utilisateur UNIX :
|
|
Nos comptes mails sont basés sur les utilisateurs UNIX du serveur. |
Application des paramètres
- Pour que les modifications soient prises en compte, il faut redémarrer Postfix :
|
|
Test de validation du serveur
Test du serveur SMTP
- Nous pouvons vérifier le bon fonctionnement du serveur SMTP en s'y connectant depuis la commande telnet :
|
|
- Le serveur répondra par un code 220 contenant la bannière qui a été définit au paramètre smtpd_banner dans le fichier main.cf.
|
|
- Pour valider son fonctionnement, nous allons envoyer un mail. Commençons d'abord par indiquer notre adresse mail émetteur :
|
|
- Le serveur acquittant avec le code 250, nous pouvons maintenant indiquer l'adresse de l'expéditeur :
|
|
- Le serveur doit acquitter également avec le code 250. Maintenant nous allons rédiger le contenu du mail. Pour cela, il faut saisir la commande data :
|
|
- Le serveur répondra par :
|
|
- Dès lors, nous pouvons maintenant rédiger notre mail. La touche Entrée est interprété comme un retour à la ligne dans le mail.
|
|
- Le mail rédigé, on revient à la ligne avec la touche Entrée, puis on saisie un point (.) et on appui de nouveau sur la touche Entrée :
|
|
- Le serveur valide la mise en attente de distribution du mail et retourne son numéro d'identifiant quand le file d'attente :
|
|
Test du serveur POP3
- On va vérifier la bonne réception du mail envoyé à l'étape précédente. Pour cela on se connecte au serveur sur le port 110 :
|
|
- On indique lenom d'utilisateur UNIX du compte avec la commande user :
|
|
- Le serveur demande le mot de passe du compte, on lui renseigne via la commande pass :
|
|
- Le serveur accepte la connexion. On consulte la liste des messages avec la commande list :
|
|
- On affiche les 20 premières lignes du message 1 avec la commande top :
|
|
Test du serveur IMAP
- On se connecte au serveur sur le port imap 143 :
|
|
- Le serveur attend un login est un mot de passe. Pour cela, on utilise la commande LOGIN <user> <password> :
|
|
- On demande la liste des répertoires grâce à la commande LIST "" "*" :
|
|
- On accès au dossier des message reçus dans le dossier INBOX avec la commande SELECT <nom_dossier> :
|
|
- On liste les message reçus dans le dossier INBOX avec la commande SELECT <nom_dossier> :
|
|
- On consulte le message avec l'UID 1 en saisisant la commande UID FETCH <UID_message> BODY[] :
|
|
- On ferme la connexion avec la commande LOGOUT :
|
|
Options et modules
Authentification MySQL
Création de la base de données
- Création de l'utilisateur mysql postfix avec le mot de passe motdepassebasemysqlpourpostfix et sa base de données nommé postfix avec les droits nécessaires.
Création du fichier mysql_relay_domains_maps.cf
user = postfix password = motdepassebasemysqlpourpostfix hosts = 192.168.1.123 dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
Création du fichier mysql_virtual_alias_maps.cf
user = postfix password = motdepassebasemysqlpourpostfix hosts = 192.168.1.123 dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = 1
Création du fichier mysql_virtual_domains_maps.cf
user = postfix password = motdepassebasemysqlpourpostfix hosts = 192.168.1.123 dbname = postfix query = SELECT domain FROM domain WHERE domain='%s'
Création du fichier mysql_virtual_mailbox_limit_maps.cf
user = postfix password = motdepassebasemysqlpourpostfix hosts = 192.168.1.123 dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s'
Création du fichier mysql_virtual_mailbox_maps.cf
user = postfix password = motdepassebasemysqlpourpostfix hosts = 192.168.1.123 dbname = postfix query = SELECT maildir FROM mailbox WHERE CONCAT(username,'@',domain)='%s' AND active = 1
Edition du fichier /etc/postfix/main.conf
# Support Mysql virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /home/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 5000 virtual_transport = virtual virtual_uid_maps = static:5000 # Support du quota virtual_mailbox_limit = 504000000 # virtual_create_maildirsize = yes # virtual_mailbox_extended = yes
Ajout d'un disclaimer
Le module Altermime permet d'ajouter un texte qui sera ajouté à chaque fin de message. Il est possible de régler le disclaimer en fonction du nom de domaine et de l'activer pour une boîte mail précise ou tout un domaine.