Formation PUB425 : Objets connectés avec Jeedom et Home Assistant, A-2025 L'envoi de courriel dans Jeedom

15.2 Tester la connexion SMTP avec Telnet


Facultatif

Plusieurs facteurs peuvent faire en sorte qu'un site Web ne réussisse pas à envoyer un courriel.

Le principal acteur dans l'envoi de courriel est le serveur SMTP (Simple Mail Transfer Protocol). En testant la communication avec le serveur SMTP à la ligne de commande, nous éliminons tous les problèmes potentiels dus à la programmation du site Web, ce qui facilite le travail de débogage.

Installation de Telnet

Telnet (terminal network ou telecommunication network, ou encore teletype network)1 est un protocole de communication. C'est également un outil en ligne de commande pour tester l'envoi de courriel.

Pour installer Telnet sous Windows, rendez-vous dans Panneau de configuration / Programmes et fonctionnalités / Activer ou désactiver des fonctionnalités Windows / puis cochez Client Telnet.

Ajouter le client Telnet sous Windows

Pour installer Telnet sous Mac, vous avez besoin de Homebrew.

Si Homebrew n'est pas déjà installé :

Terminal

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Pour installer Telnet :

Terminal

brew install telnet

Connexion au serveur SMTP

Pour vous connecter au serveur d'envoi de courriel, suivez ces instructions. Elles sont les mêmes sous Windows et sous Mac.

  • D'abord, vous devez avoir en main les informations sur votre compte de courriel. Chez l'hébergeur où vous avez configuré votre adresse de courriel, rendez-vous dans le cPanel puis cliquez sur Email Accounts.
  • Vis-à-vis l'adresse de courriel que vous désirez tester, cliquez sur Connect Devices.
  • Dans la page qui apparaît, les informations dont vous aurez besoin sont dans la section Mail Client Manual Settings.

    Mail Cient Manual Settings

  • Ouvrez une fenêtre de commande.
  • Entrez la commande telnet suivie du nom du serveur SMTP (Information que vous trouverez sous Outgoing Server, généralement sous la forme smtp.mondomaine.com ou mail.mondomaine.com) et du numéro de port.

    Notez que le port utilisé sera généralement l'un des suivants :

    • 25 : connexion entre serveurs ou connexion client-serveur non sécurisée
    • 465 : connexion entre client et serveur nécessitant une authentification, à utiliser si 587 ne fonctionne pas
    • 587 : connexion entre client et serveur nécessitant une authentification, généralement ceci est le meilleur choix

    Ex :

    Terrminal

    telnet mail.mondomaine.com 587

    ou

    Terminal

    telnet

    open mail.mondomaine.com 587

    Si la commande fonctionne, vous devriez obtenir une réponse débutant par 220 suivi du nom de domaine puis de la version du protocole SMTP. La sortie exacte pourra être différente selon le fournisseur.

    Résultat à l'écran

    MBPdeMonNom:~ monnom$ telnet mail.mondomaine.com 587
    Trying 999.999.999.999...
    Connected to mail.mondomaine.
    Escape character is '^]'.
    220-az1-ss23.fournisseur.com ESMTP Exim 4.93 #2 Mon, 02 Nov 2020 11:17:39 -0700
    220-We do not authorize the use of this system to transport unsolicited,
    220 and/or bulk e-mail.

  • Remarquez le message « We do not authorize the use of this system to transport unsolicited, and/or bulk e-mail. ». Il ne fait que vous avertir que vous n'êtes pas autorisés à envoyer du courriel non sollicité ni du courriel en lot.
  • Lancez la communication entre le client Telnet et le serveur SMTP à l'aide de la commande EHLO suivie de localhost.

    Note : la commande HELO existe également mais certains protocoles SMTP ne la reconnaissent pas.

    Remarquez que les commandes dans la console Telnet sont montrées ici en majuscules mais qu'elles fonctionneront également si vous les entrez en minuscules.

    Console Telnet

    EHLO localhost

    Le serveur SMTP répondra en donnant un code 250 suivi d'une liste des commandes qu'il supporte. Ces commandes pourront être différentes selon le serveur SMTP que vous tentez de joindre.

    Résultat à l'écran

    EHLO localhost
    250-az1-ss23.fournisseur.com Hello localhost [999.999.999.999]
    250-SIZE 52428800
    250-8BITMIME
    250-PIPELINING
    250-AUTH PLAIN LOGIN
    250-STARTTLS
    250 HELP

Code et mot de passe du compte de courriel

Attention : l'utilisation de Telnet ouvre un trou de sécurité puisque les informations transigent en clair sur le réseau.

Si vous avez réussi à obtenir une réponse du serveur SMTP avec la liste des commandes 250, vous pouvez arrêter ici, aucun risque n'a été encouru à date.

Si vous souhaitez poursuivre jusqu'à l'envoi d'un courriel réel, vous pouvez poursuivre mais sachez que vos informations d'authenficiation, même si elles sont encodées avec base64 (algorithme qui peut être décrypté), seront transmises en clair.

Si vous utilisez un serveur sécurisé, l'envoi d'un courriel débutera par le code d'usager et le mot de passe du compte de courriel à partir duquel l'envoi doit se faire.

Le code d'usager sera l'adresse de courriel complète, par exemple info@mondomaine.com.

Vous devrez crypter votre code d'usager et votre mot de passe en base64. Ceci peut être réalisé avec un outil en ligne, par exemple https://www.base64encode.org.

Console Telnet

AUTH LOGIN

code-en-base64

mdp-en-base64

Il est possible que le serveur affiche un numéro de ligne et une série de caractères après chaque entrée.

Si les informations sont bonnes, le serveur répondra Authentication succeeded.

Résultat à l'écran

AUTH LOGIN
334 VXNlcm5hbWU6
bm8tcmVwbHlAbW9uZG9tYWluZS5jb20=
334 UGFzc3dvcmQ6
bW90ZGVwYXNzZWRlbW9uY29tcHRl
235 Authentication succeeded

FROM et TO

Il faut maintenant spécifier les adresses de courriel qui apparaîtront dans les zones From (De) et To (À).

Le From sera souvent la même adresse que le compte utilisé pour l'envoi mais ceci n'est pas une obligation. Notez cependant que certains serveurs refusent que l'adresse de la clause FROM provienne d'un nom de domaine différent.

Console Telnet

MAIL FROM:annie.gagnon@mondomaine.com

RCPT TO:toto.lacasse@hotmail.com

DATA

telnet vous indiquera après chaque ligne si tout est correct.

Message à l'écran

MAIL FROM:annie.gagnon@mondomaine.com
250 OK
RCPT TO:toto.lacasse@hotmail.com
250 Accepted
DATA
354 Enter message, ending with "." on a line by itself

Corps du message

Si l'étape précédente a fonctionné, vous êtes maintenant prêt à entrer le message en tant que tel. La fin du message sera notée par un point seul sur sa ligne.

Console Telnet

Subject: message test

Ceci est un message test envoyé via telnet.

.

Vous pouvez finalement refermer la connexion en entrant la commande QUIT :

Console Telnet

QUIT

Consultez le courriel de destination : si les configurations ont été bien entrées, le message devrait y être.

Notez que le courriel pourrait avoir été placé dans la boîte de courriels indésirables. Vérifiez bien!

En résumé

Voici la liste des commandes à utiliser pour tester l'envoi de courriel. Je vous suggère de les copier dans un document texte en y insérant les vraies informations à utiliser.

De cette façon, il sera plus facile d'effectuer vos tests.

Terminal

telnet monserveursmtp.com 587

EHLO localhost

AUTH LOGIN

code-en-base64

mdp-en-base64

MAIL FROM:annie.gagnon@mondomaine.com

RCPT TO:toto.lacasse@hotmail.com

DATA

Subject: message test

Ceci est un message test envoyé via telnet.

.

QUIT

Pour plus d'information

« Email - How to verify your SMTP connection and parameters (TSL/SSL) with TELNET ? ». DataCadamia. https://datacadamia.com/marketing/email/smtp_telnet

« SMTP Commands Reference ». SamLogic Software. https://www.samlogic.net/articles/smtp-commands-reference.htm

« Simple Mail Transfer Protocol ». Wikipédia. http://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

Source

1. « Telnet ». Wikipédia. https://fr.wikipedia.org/wiki/Telnet

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre