====== Authentification LDAP ======
Cette procédure décrit l'envoi de mail en local d'un utilisateur LDAP à un autre. C'est la solution qui est attendue au terme de la TX.
:!: Puisque plusieurs conversations par ''telnet'' sont reportées ici, et afin de simplifier la lecture, nous avons adopté la convention du chevron ''>'' pour spécifier les lignes entrées par l'utilisateur. Mais en réalité, **il n'est pas requis** ! Du reste, c'est la convention ''bash'' qui est adoptée (''#'' pour ''root'' et ''$'' sinon).
===== Build et lancement des conteneurs =====
Utiliser le [fichier Compose du dépôt](https://gitlab.utc.fr/picasoft/projets/services/mail-system/), à lancer par exemple sur la machine de test :
```bash
docker-compose build
docker-compose up -d
```
===== Envoi d'un mail à une adresse locale =====
Une fois les conteneurs lancés, nous allons pouvoir envoyer un mail d'un utilisateur LDAP ''huetremy'' à un utilisateur LDAP ''louise''. Tous deux ont été créés dans le LDAP de test de Picasoft préalablement. (:!: **Attention** au schéma LDAP utilisé : le //bind// LDAP s'opère sur l' ''uid'' de l'utilisateur LDAP)
Pour cela, il faut rentrer à l'intérieur du conteneur du MTA((En effet, par mesure de sécurité, la connexion au serveur n'est acceptée que pour l'adresse ''127.0.0.1'', donc l'envoi de mail ne peut s'effectuer que //depuis// le serveur lui-même.)):
$docker exec -it pica-mail-mta /bin/bash
On peut maintenant envoyer un mail à l'aide de la commande ''telnet'' :
#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 pica01-test.test.picasoft.net ESMTP Postfix (Debian/GNU)
>helo pica01-test.test.picasoft.net
250 pica01-test.test.picasoft.net
>MAIL FROM:
250 2.1.0 Ok
>RCPT TO:
250 2.1.5 Ok
>DATA
354 End data with .
>Subject: Second mail!
>Bonjour Pica-world!
>.
250 2.0.0 Ok: queued as 946E8FB621
>quit
221 2.0.0 Bye
Connection closed by foreign host.
#exit
===== Consultation d'un mail en IMAP =====
Il convient enfin de vérifier que le mail a été reçu par le MDA.
On rentre à l'intérieur du conteneur:
$docker exec -it pica-mail-mda /bin/bash
On interroge donc le serveur à l'aide de ''telnet''((Une explication simple et rapide des règles de conversation avec un serveur IMAP est consultable sur cette [[http://www.technologuepro.com/reseaux/Pratique-des-protocoles/Interrogation-d-un-serveur-mail-avec-telnet.html|page]]. Une description plus complète et plus utile (pour comprendre ce qu'on fait) est disponible sur cette [[http://irp.nain-t.net/doku.php/190imap:030_commandes#syntaxe|autre page]].))((Il est intéressant de noter que l'authentification est confirmée à partir de la ligne n°7 du bloc suivant.)) :
#telnet localhost 143
Trying 91.224.148.59...
Connected to pica-mail-mda.pica01-test.test.picasoft.net.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
>1 LOGIN louise loufouette
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in // Authentification réussie !
>2 SELECT INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 1 EXISTS
* 1 RECENT
* OK [UNSEEN 1] First unseen.
/* on récupère l'UID du mail qui vient d'arriver, ici 1 mais
pour vous il sera différent. Il est utile pour la commande suivante. */
* OK [UIDVALIDITY 1543245819] UIDs valid
* OK [UIDNEXT 2] Predicted next UID
2 OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
>3 UID FETCH 1 BODY[HEADER] // on rentrer ici l'UID qu'on a récupéré
* 1 FETCH (UID 1 FLAGS (\Seen \Recent) BODY[HEADER] {636}
Return-Path:
Delivered-To: louise@picasoft.net
Received: from pica01-test.test.picasoft.net ([172.19.0.3])
by pica-mail-mda (Dovecot) with LMTP id 5gdxAPsP/Fs4AAAATq6bHg
for ; Mon, 26 Nov 2018 15:23:39 +0000
Received: from pica01-test.test.picasoft.net (localhost [127.0.0.1])
by pica01-test.test.picasoft.net (Postfix) with SMTP id 946E8FB621
for ; Mon, 26 Nov 2018 15:22:59 +0000 (UTC)
Subject: Second mail!
Message-Id: <20181126152314.946E8FB621@pica01-test.test.picasoft.net>
Date: Mon, 26 Nov 2018 15:22:59 +0000 (UTC)
From: huetremy@picasoft.net
)
3 OK Fetch completed (0.001 + 0.000 secs).
>4 UID FETCH 1 BODY[TEXT]
* 1 FETCH (UID 1 BODY[TEXT] {21}
Bonjour Pica-world!
)
4 OK Fetch completed (0.001 + 0.000 secs).
>5 LOGOUT
* BYE Logging out
5 OK Logout completed (0.000 + 0.000 secs).
Connection closed by foreign host.
#exit