Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Pourquoi s'identifier ?
Bien souvent, les
FAI bloquent l'utilisation anonyme de leurs serveurs mails pour éviter le spam. Je vous demande à présent d'user de votre véritable adresse mail auprès de votre Fournisseur Mail. Vous trouverez très facilement l'adresse de votre serveur SMTP sur le web (chercher par exemple
ici)
Si vous avez un compte Hotmail, ou un compte avec accès sécurisé SSL ou autre (comme par exemple Gmail), il va falloir vous créer une nouvelle adresse si vous voulez continuer à suivre ce cours. Vous pouvez prendre la Poste, comme moi.
Nous allons donc devoir nous identifier :
Vous vous souvenez cette ligne ?
250-AUTH PLAIN LOGIN
Cela voulait dire que le serveur supporte l'identification de type
auth plain.
Nous allons donc pouvoir nous identifier de cette manière.
Mais avant que vous appreniez cela, il faut que je vous enseigne un truc super barbare

:
L'encodage
Base64 !
Pourquoi ?
Les serveurs SMTP utilisent un encodage particulier pour l'identification. C'est le
Base64.
Pas la peine d'essayer de comprendre à quoi ça sert, de toutes façons, c'est comme ça

!
Ne pas confondre encodage et encryptage. Le Base64 n'est nullement sécurisé, et se décode sans aucune difficulté !
Je vous recommande chaudement ce lien pour la suite de nos exercices :
http://www.paulschou.com/tools/xlate/
Le
auth plain se décline sous cette forme :
\0login\0motdepasse
(
\0 représente un caractère nul, ce qui va compliquer les choses).
(
Note : le login est le plus souvent ce qui est écrit devant l'arobase dans votre adresse e-mail. Exemple :
paul@laposte.net).
Nous allons mettre notre login et notre mot de passe dans la zone
TEXT.
Perso, je vais prendre pour les exemples "paul" comme login, et "123" comme mot de passe. Qui a dit que c'est pas original ?
Cliquez sur le bouton
<encode> sous la zone
TEXT.
Ensuite, allez dans la zone
HEX, et ajoutez 00 avant le login, et 00 avant le mot de passe (deux chiffres hexadécimaux représentent un caractère).
Cliquez sur le bouton
<decode> de la zone
HEX, et notez bien le résultat de la zone
BASE64, en respectant la casse (Majuscules/minuscules).
Ce qui donne pour
\0paul\0123 :
AHBhdWwAMTIz (c'est fou ce que c'est ressemblant !

)
Félicitations messieurs-dames, ceci est votre AUTH PLAIN !
Conservez-le bien pour la suite des opérations !
Astuce : copiez ce code (Sélectionnez > Ctrl C), et vous pourrez le coller directement dans la console Telnet (clic-droit).
S'identifier en auth plain
Revenons à notre console Telnet pour tester tout ça...
open smtp.laposte.net 25
220 mwinf8407.laposte.net ESMTP ABO ****************************
ehlo localhost
250-mwinf8407.laposte.net
250-PIPELINING
250-SIZE 17000000
250-AUTH PLAIN LOGIN
250-8BITMIME
auth plain
334
AHBhdWwAMTIz
235 2.7.0 plain authentication successfull
S'identifier en auth login
Il existe en réalité deux types d'identification, le
auth login, et le
auth plain.
Personnellement, j'ai dû apprendre le
auth login parce que je n'arrivais pas à encoder des caractères nuls en Base64. Mais si le serveur permet le
auth plain, je trouve que celui-ci est préférable, car plus court.
Vous allez devoir encoder votre login et votre mot de passe
séparément en Base64 (
sans caractère nul).
Le
auth login se passe en deux temps :
auth login
334 VXNlcm5hbWU6
cGF1bA==
334 UGFzc3dvcmQ6
MTIz
235 plain authentication successfull
Conclusion :
Si vous avez bien reçu le code
235, c'est que c'est tout bon !
Nous pouvons enfin envoyer un mail. Tiens donc, à qui vais-je l'envoyer, moi... ?
Réfléchissons un peu :
Un e-mail est composé d'un expéditeur, d'un destinataire, et d'un contenu. Il va donc falloir fournir tous ces éléments au serveur.
Voici les formules magiques :
mail from: <paul@laposte.net>
250 Ok
rcpt to: <nicolas@orange.fr>
250 OK
data
354 End data with <CR><LF>.<CR><LF>
Merci beaucoup pour ton site. Il est formidable !
.
250 Ok
Explications
On spécifie tout d'abord l'expéditeur :
paul@laposte.net.
Ensuite (si le serveur répond
OK), on indique le(s) destinataire(s).
Ensuite (toujours s'il est
OK), vient le mot-clé :
data.
C'est l'indication que le message commence.
Mais, mais... comment le serveur saura que le message se termine ?
Toujours le même qui ne comprend vraiment pas l'anglais !
Tout a été prévu. Le serveur lui-même te dit :
End data with <CR><LF>.<CR><LF>
Ce qui veut dire que pour lui annoncer que tu as fini, passe à la ligne, écris un point (comme ce que j'ai fait), et passe de nouveau à la ligne.
Et voilà, le message est envoyé !
Mais comment on fait pour écrire le sujet du mail ?
Bonne question !
Pour cela, après le data, on écrit :
Subject: votre sujet
... et on passe à la ligne.
Et si je veux envoyer le mail à plusieurs personnes ?
Tu peux très bien utiliser la commande
rcpt to plusieurs fois d'affilée, comme ceci :
mail from: <paul@laposte.net>
250 Ok
rcpt to: <nicolas@orange.fr>
250 OK
rcpt to: <thomas@orange.fr>
250 OK
Mais, mais...j'ai reçu un OK, et le mail n'est jamais arrivé !
Dans ce cas, le mail a bien été envoyé, mais a été intercepté en cours de route pour diverses raisons (probable spam, etc.).
Je ne peux pas vraiment vous aider dans ce cas

, mais en réfléchissant, vous trouverez peut-être la solution.
(J'ai parfois reçu un message de retour du serveur expliquant la raison de son refus.)
Si vous avez tout fini, il ne nous reste plus qu'à saluer notre cher serveur :
quit
221 Bye
Résumé en image :
Il y a même des serveurs encore plus polis que ça, croyez-moi !
L'arobase, c'est quoi ?
Vous avez surement déjà remarqué qu'une adresse de courrier suit un type bien précis :
- A gauche, l'utilisateur du compte mail.
- A droite, le fournisseur du service de messagerie.
- Et puis l'arobase au milieu (il sert de séparateur).
L'arobase est un caractère réservé : vous ne pouvez donc pas avoir d'adresse du genre "
p@ul@laposte.net".
Lorsque le courrier est envoyé, le serveur SMTP vérifie le nom à droite de l'arobase. Il sait alors que le courrier doit être dirigé vers tel ou tel domaine.
Une fois que le courrier est parvenu a destination, le serveur du domaine concerné se charge d'insérer le courrier dans la boite aux lettres du destinataire, qui reçoit alors son courrier avec émerveillement !