Script shell telnet comment passer <CR>.<LF> smtp

Bonjour,

J'ai un script shell de sauvegarde sur plusieurs Mac, qui envoi un mail (en telnet) en cas de réussite ou d'erreur.
Jusque ici tout va bien, ça tourne sur un compte orange authentifié.
Cependant je dois changer d'orange à ovh et la fin du code smtp en telnet n'est pas simplement :
354 enter mail, end with "." on a line by itself
mais :
354 End data with <CR><LF>.<CR><LF>
Et là ça se complique pour moi, je n'arrive pas à faire ces fichus <CR><LF>
Pourriez-vous m'aider à trouver la bonne syntaxe svp ?

Voici un extrait de mon code simplifié pour compréhension :

#/bin/sh

sujetok="BLABLA"

function okmail
{
sleep 5
echo EHLO ovh
sleep 5
echo AUTH LOGIN
sleep 5
echo xyzabcde (mon identifiant en base64)
sleep 5
echo abcdexyz (mon pass en base64)
sleep 5
echo MAIL FROM:sender@mondomaine.fr
sleep 2
echo RCPT TO:notification@mondomaine.fr
sleep 2
echo DATA
echo Subject:$sujetok
echo -e "mon message:\n"
echo -----> là je dois mettre un CRLF
echo -e .
echo -----> là je dois mettre un CRLF
sleep 5
echo QUIT
}

okmail|telnet ssl0.ovh.net 587

Je précise que ce code fonctionne sous tous Mac avec Orange authentifié
et en ligne de commande terminal avec orange et ovh

Merci pour votre aide

6 réponses

  1. Modérateur
    Bonjour,

    Sans certitude...; as tu essayé \r ou \r\n
    1. Merci,

      Oui , avec -e, puis sans -e entre ' ' et " " ben j'ai pas trouvé

      sans succès
      1. Contributeur
        Salut,

        T'as essayé en ASCII ?
        echo -e '\x0d'
        echo "."
        echo -e '\x0a'


        1. Bonjour,

          @zipe31 et @dubcek

          testé sans succès, merci de votre aide

          J'ai un bad syntax, le mail part dans la queue mais n'arrive jamais

          Le <CR>.<LF> n'est pas pris en compte.

          telnet dans mon script shell prendrait il en compte la commande printf
          et si oui, quelle serait la syntaxe, pour contourner le problème?

          Merci
          1. la même :
            printf '\r\n.\r\n'
          2. Merci, j'essaye
          3. Toujours pas. Grrr...
        2. Bon, ça commence à me prendre la tête !

          Je reprend la base, j'envoie les commandes manuellement avec un terminal en Telnet

          Surprise !!! je ne reçois plus le mail !

          j'avais testé hier bien sûr, c'était ok, plus maintenant (!?)

          Du coup, dans tous mes tests effectués, certains étaient peut être ok.

          Je suis allé voir mon "Manager OVH" au cas ou avec tous mes tests
          mon adresse sender se serait fait blacklistée : non

          Bon j'arrête là !

          Pour info, voici ma sortie terminal , pas d'erreurs, mais pas de réception non plus, il me semble que je devrais avoir une sorte de Mail accepted for delivery (en tous cas j'ai ça avec Orange et j'ai eu quelque chose comme ça hier avec ovh)

          Merci à tous

          MacBook:~ eric$ telnet ssl0.ovh.net 587
          Trying 193.70.18.144...
          Connected to ssl0.ovh.net.
          Escape character is '^]'.
          220-ssl0.ovh.net player714
          EHLO 220 ssl0.ovh.net player714
          EHLO ovh
          250-player714.ha.ovh.net
          250-SIZE 104857600
          250-STARTTLS
          250-AUTH PLAIN LOGIN
          250-AUTH=PLAIN LOGIN
          250-ENHANCEDSTATUSCODES
          250 8BITMIME
          AUTH LOGIN
          334 VXNlcm5hbWU6
          334 UGFzc3dvcmQ6
          235 2.7.0 Authentication successful
          MAIL FROM:sender@*******.fr
          250 2.1.0 Ok
          RCPT TO:notification@******.fr
          250 2.1.5 Ok
          DATA
          354 End data with <CR><LF>.<CR><LF>
          SUBJECT:"toto"
          dfgsdfgsdfgsdfgsd
          .
          250 2.0.0 Ok: queued as 4DEE23C0096
          QUIT
          221 2.0.0 Bye
          Connection closed by foreign host.