Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Telnet - Envoyer un mail en ligne de commande ====== <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/03/10 16:48// Même s'il s'agit d'une ancienne technologie, ''telnet'' reste un standard dans la communication avec une machine et notamment avec les serveurs ''SMTP''. * Chiffrement/Déchiffrement Base64 : [[https://www.base64decode.org/|Base64 Decode and Encode - Online]] ===== Procédure ===== Pour envoyer un mail directement en ligne de commande : * On se connecte au serveur de messagerie (indiqué ici par //smtp.shyrka.sys//) en spécifiant le port utilisé (ici, on utilisera le port par défaut soit 25). <sxh powershell># Commande telnet smtp.shyrka.sys 25 # Réponse Trying a.b.c.d... Connected to smtp.shyrka.sys. Escape character is '^]'. 220 smtp.shyrka.sys ESMTP </sxh> * Ici, le retour ''ESMTP'' précise que le serveur accepte le mode étendu du SMTP. * On se présente auprès du serveur ''SMTP''. Les anciens serveurs (ou les moins complexes) répondent via la commande ''HELO'' alors que les plus récent (ou ceux qui supporte le mode étendu) répondent via la commande ''EHLO''. On fera suivre la commande par le nom du serveur de messagerie du client (ici, on utilisera //serveur.domaine.tld//) : <sxh powershell># Commande EHLO serveur.domaine.tld # Réponse 250-serveur.domaine.tld Hello [e.f.g.h] 250-SIZE 26214400 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS </sxh> * Le serveur répond en annonçant ces caractéristiques : * **SIZE** : Indique la taille maximale des mails en octet (soit 25Mo dans cette exemple). * **PIPELINING** : Indique que le serveur accepte des entrée en provenance du pipeline. * **AUTH PLAIN LOGIN** : Indique la nécessité de s'authentifier pour utiliser les services. * **STARTTLS** : Indique que le serveur utilise ''STARTTLS'' comme modèle de séécurité. * Il existe bien d'autres caractéristiques qui varie selon les serveurs de messagerie. <callout type="tip" icon="true" title="Authentification">L'étape d'authentification n'est nécessaire que si le serveur en fait la demande. Dans le cas contraire, on peut directement passer à la séquence de rédaction du mail.</callout> * Vu que le serveur exige une authentification, on utilise la commande ''AUTH LOGIN'' pour s'authentifier : <sxh powershell># Commande AUTH LOGIN # Réponse 334 VXNlcm5hbWU6 </sxh> * La réponse du serveur est tout simplement ''Username:'' en Base64. Il s'agit de l'utilisateur autorisé à se connecter. La réponse doit elle aussi être donnée en Base64 d'où le lien vers le site de chiffrement : <sxh powershell># Commande TW9uIGxvZ2lu # Réponse 334 UGFzc3dvcmQ6 </sxh> * Là, la réponse est ''Password:'' en Base64. On rentre donc le mot de passe, lui aussi en Base64 : <sxh powershell># Commande UEBzc3cwcmQ= # Réponse 235 Authentication succeeded </sxh> * Le serveur nous a clairement identifié. On va pouvoir envoyer un mail en ligne de commande. <callout type="primary" icon="true" title="Corps de message">C'est ici que commence la rédaction du mail.</callout> * On commence par indiquer l'expéditeur. Il doit s'agir d'une adresse mail du serveur de messagerie client : <sxh powershell># Commande MAIL FROM: test@domaine.tld # Réponse 250 ok </sxh> * On indique après le destinataire. Là, c'est une adresse du serveur de messagerie sur lequel on est connecté : <sxh powershell># Commande RCPT TO: test@shyrka.sys # Réponse 250 ok </sxh> * Ensuite, on entre dans la partie ''données'' du mail : <sxh powershell># Commande DATA # Réponse 354 go ahead </sxh> * Là, on peut écrire notre message en texte brut (on oublie le HTML à ce niveau). On peut précéder le message par la balise ''Reply-to:'' pour indiquer l'adresse de réponse et/ou ''Subject:'' pour indiquer le sujet du mail. Comme la touche ''Entrée'' renvoie à la ligne, on termine le mail et on active son traitement en entrant un ''.'', seul la dernière ligne : <sxh powershell># Commande Reply-to: fulltest@domaine.tld Subject: Message de test Ceci est un message de test. Voilà un exemple de retour à la ligne. . # Réponse 250 ok </sxh> * Il ne nous reste plus qu'à quitter ''telnet'' : <sxh powershell># Commande QUIT # Réponse 221 serveur.domaine.tld Connection closed by foreign host </sxh> Au final, la communication ''telnet'' ressemble à ça : <sxh powershell>telnet smtp.shyrka.sys 25 Trying a.b.c.d... Connected to smtp.shyrka.sys. Escape character is '^]'. 220 smtp.shyrka.sys ESMTP EHLO serveur.domaine.tld 250-serveur.domaine.tld Hello [e.f.g.h] 250-SIZE 26214400 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS AUTH LOGIN 334 VXNlcm5hbWU6 TW9uIGxvZ2lu 334 UGFzc3dvcmQ6 UEBzc3cwcmQ= 235 Authentication succeeded MAIL FROM: test@domaine.tld 250 ok RCPT TO: test@shyrka.sys 250 ok DATA 354 go ahead Reply-to: fulltest@domaine.tld Subject: Message de test Ceci est un message de test. Voilà un exemple de retour à la ligne. . 250 ok QUIT 221 serveur.domaine.tld Connection closed by foreign host </sxh> ===== Principaux codes de retour ===== Même si les commentaires suivants les codes de retour peuvent être modifiés par la configuration du serveur ''SMTP'', les codes, eux, sont standardisés. Voici les principaux : |< 100% 20% 80% >| ^ Code ^ Signification ^ | 220 | Connexion réussie. | | 221 | Fin de la connexion. | | 235 | Authentification réussie. | | 250 | Commande acceptée. | | 334 | Attente de réponse de la part du serveur. | | 354 | En attente des données. | | 421 | Échec temporaire de la connexion. Il s'agit d'un problème technique générale au niveau du serveur ''SMTP''. | | 452 | Échec temporaire concernant les destinataires. La liste des destinataires indiquées dépassent la capacité de traitement du serveur. | | 535 | Authentification échouée. | | 550 | Échec permanent. La boîte mail n'existe pas/plus ou et invalide. | | 554 | Échec permanent. Le serveur client est blacklisté par le serveur hôte. | ~~DISCUSSION~~ telnet_mail.txt Dernière modification : 2021/03/05 14:08de nekan