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. 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.
    0
    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
      0
      1. la même :
        printf '\r\n.\r\n'
        0
      2. Merci, j'essaye
        0
      3. Toujours pas. Grrr...
        0
    2. hello
      et avec ?
      echo -en "\r\n"
      0
      1. Contributeur
        Salut,

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


        0
        1. Merci,

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

          sans succès
          0
          1. Modérateur
            Bonjour,

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