protocole smtp sous telnet
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

protocole smtp sous telnet



  1. #1
    luke-paule

    protocole smtp sous telnet


    ------

    bonjour
    il y a deja longtemps que je cherche un moyen d ennvoyer un mail avec telnet au debut tout ce passe bien puis lorsque je tape mail from:<mon@adresseemail.com> , il s'écrit
    530 5.7.0 Must issue a STARTTLS command first. ul1sm17204407wjc.30 - gsmtp
    Pourriez vous m'aider si il vous plait.
    Merci d'avance pour votre aide.

    -----

  2. #2
    pm42

    Re : protocole smtp sous telnet

    A une époque, c'était facile et on s'amusait à envoyer des mails depuis n'importe quelle adresse bidon genre god@heaven.universe...
    Mais depuis, les serveurs SMTP se sont sécurisés et là, il te demande d'utiliser le protocole TLS qui passe par des clés publiques et autres... A la main en telnet, ça devient tout de suite plus compliqué (euphémisme) et c'est le but.

  3. #3
    luke-paule

    Re : protocole smtp sous telnet

    j aime bien ce qui est compliquer si il vous plait dite moi comment faire

  4. #4
    pm42

    Re : protocole smtp sous telnet

    Citation Envoyé par luke-paule Voir le message
    j aime bien ce qui est compliquer si il vous plait dite moi comment faire
    Je suggérerais dans ce cas de commencer par la langue française : c'est compliqué et la maitriser mieux permettrait :
    - de rendre vos posts plus compréhensibles et agréables à lire
    - de comprendre les réponses qui vous sont faites, par exemple le sens du mot "euphémisme"
    - avec un peu de chance, de lire et comprendre les énoncés des sous-forums et donc de ne pas poser une question sur SMTP dans la partie "langages de programmation"

  5. A voir en vidéo sur Futura
  6. #5
    lou_ibmix_xi

    Re : protocole smtp sous telnet

    Ca reste très faisable, il faut "juste" ajouter la partie authentification, je me suis "amusé" à ça il y a quelques années, je ne me rappelle plus du détail, je te copie-colle le contenu du script BASH que j'avais fait à l'époque:

    Code:
    #!/bin/bash
    
    # Binaries to use ##############################################################
    BASE64=/usr/local/bin/base64
    NETCAT=/usr/local/bin/nc
    GETOPT=/usr/local/bin/getopt
    AUTHBIN=/usr/local/bin/user64.sh
    OPENSSL=/bin/openssl
    
    # Default parameters ###########################################################
    SERVER=smpt.server.fr
    PORT=463
    
    # localname
    LOCALNAME=`hostname`
    # expeditor
    EXP="address@email.fr"
    # receipient
    DEFAULT_RCPT="myself@email.fr"
    # subject
    SUBJECT="MESSAGE AUTOMATIQUE"
    # email contents
    MSG="CECI EST UN MESSAGE AUTOMATIQUE"
    #
    IMPORTANCE="Normal"
    # TODO bounding verification, coherence with the importance
    PRIORITY="3"
    # TODO get it from the message content
    CHARSET="ISO-8859-1"
    
    # Help message #################################################################
    print_usage () {
        echo "$0 [-S SERVER] [-P PORT] [-e EXP_ADDR] [-r RCPT_ADDR] [-s SUBJECT]"
        echo "                [-m MESSAGE] [-a ATTACHMENT] [-i IMPORTANCE]"
        echo "                [-p PRIORITY] [-c CHARSET] [-l LOCALNAME]"
        echo "Sending email with netcat, if netcat is not available, use /dev/tcp"
        echo "shell method."
        echo ""
        echo "   -S SERVER: server name or IP, \"$SERVER\" per default."
        echo "   -P PORT: port number to use to connect to the server,"
        echo "            \"$PORT\" per default."
        echo "   -e EXP_ADDR: email sender address, \"$EXP\" per default."
        echo "   -r RCPT_ADDR: email recipient address, as many option as there is"
        echo "                 different recipients, \"$DEFAULT_RCPT\" per default."
        echo "   -s SUBJECT: email subject, \"$SUBJECT\" per default."
        echo "   -m MESSAGE: email content, if MESSAGE is a file, the file content"
        echo "               is took, \"$MSG\" per default."
        echo "   -i IMPORTANCE: email MIME importance, $IMPORTANCE per default."
        echo "   -p PRIORITY: X-Priority, between 1 (urgent) and 6,"
        echo "                $PRIORITY per default."
        echo "   -c CHARSET: charset used to encode the message, $CHARSET per"
        echo "               default"
    }
    
    # Arguments parsing ############################################################
    ARGS=`$GETOPT -o S:P:l:e:r:s:m:a:i:p:c:B:b:u:Eh -n $0 -- "$@"`
    eval set -- "$ARGS"
    while true; do
        case "$1" in
            -S) SERVER=$2; shift 2;;
            -P) PORT=$2; shift 2;;
            -l) LOCALNAME=$2; shift 2;;
            -e) EXP=$2; shift 2;;
            -r) RCPT="$RCPT $2"; shift 2;;
            -s) SUBJECT="$2"; shift 2;;
            -m) TMP="$2";
                if [ -f "$TMP" ]; then
                    MSG="`cat "$TMP"`"
                else
                    MSG="$TMP"
                fi
                shift 2;;
            -a) ATTACHMENT="$ATTACHMENT $2"; shift 2;;
            -i) IMPORTANCE=$2; shift 2;;
            -p) PRIORITY=$2; shift 2;;
            -c) CHARSET=$2; shift 2;;
    		-B) CERT_BASE=$2; shift 2;;
            -u) USER=$2; shift 2;;
            -b) PWD=$2; shift 2;;
            -E) ESMTP=1; shift 1;;
            -h) print_usage; exit 0;;
    #        -*) echo Try "$0 -h" to get help.; exit 1;; TODO
            --) shift; break;;
       esac
    done
    
    if [ -z "$RCPT" ]; then
        RCPT="$DEFAULT_RCPT"
    fi
    
    if [ -z "$CERT_BASE" ]; then
        CERT_BASE="/certs"
    fi
    
    ################################################################################
    CMDFILE=/var/log/netcat_cmd.$$.`date +%s`
    
    print_on_socket () {
        echo -e "$1" >> "$CMDFILE"
    }
    
    BOUNDARY=KkK170891tpbkKk__FV_KKKkkkjjwq
    
    ################################################################################
    if [ ! -z $PWD ]; then
       ESMTP=1
    fi
    if [ ! -z $ESMTP ] && [ ! $ESMTP -eq 0 ]; then
        print_on_socket "EHLO $LOCALNAME"
    else
        print_on_socket "HELO $LOCALNAME"
    fi
    if [ ! -z "$PWD" ]; then
        AUTH=`$AUTHBIN $USER $PWD`
        print_on_socket "AUTH PLAIN $AUTH"
    fi
    print_on_socket "MAIL FROM: <$EXP>"
    for rcpt in $RCPT; do
        print_on_socket "RCPT TO: <$rcpt>"
    done
    print_on_socket "DATA"
    ################################################################################
    # Following is the email content in MIME format
    #*TODO \r\n or not after each MIME? it looks like it better works without any
    # of them but not sure if all servers behaviour are the same
    ################################################################################
    print_on_socket "Date: `date -R`"
    print_on_socket "From: <$EXP>" #*TODO human readable ID,
    print_on_socket "MIME-Version: 1.0"
    # if you want to hide some rcpt, exclude them from the following loop
    for rcpt in $RCPT; do
        print_on_socket "To: <$rcpt>"
    done
    print_on_socket "Subject: $SUBJECT"
    print_on_socket "Importance: $IMPORTANCE"
    print_on_socket "X-Priority: $PRIORITY"
    if [ ! -z "$ATTACHMENT" ]; then
        print_on_socket "Content-Type: multipart/mixed;"
        print_on_socket " boundary=\"$BOUNDARY\""
        print_on_socket "--$BOUNDARY"
    fi
    print_on_socket "Content-Type: text/plain; charset=$CHARSET"
    print_on_socket "Content-Transfer-Encoding: 7bit"
    print_on_socket ""
    print_on_socket "$MSG"
    print_on_socket ""
    if [ ! -z "$ATTACHMENT" ]; then
        for attach in $ATTACHMENT; do
            if [ ! -f  "$attach" ]; then
                echo $attach does not exist or is not a regular file.
            else
                print_on_socket "--$BOUNDARY"
                print_on_socket "Content-Type: application/octet-stream;"
                NAME=`echo $attach | awk -F"/" '{print $NF}'`
                print_on_socket " name=$NAME"
                print_on_socket "Content-Transfer-Encoding: base64"
                print_on_socket "Content-Disposition: attachment;"
                print_on_socket " filename=$NAME"
                print_on_socket ""
                $BASE64 $attach >> "$CMDFILE"
                print_on_socket ""
            fi
        done
        print_on_socket "--$BOUNDARY--"
    fi
    
    print_on_socket "."
    #print_on_socket "\r\n.\r\n"
    print_on_socket "QUIT"
    
    if [ ! -z $ESMTP ] && [ ! $ESMTP -eq 0 ]; then
    	$OPENSSL s_client -connect $SERVER:$PORT -starttls smtp -crlf \
    			-CApath "$CERT_BASE""/"$SERVER < "$CMDFILE"
    else
    	"$NETCAT" $SERVER $PORT < "$CMDFILE"
    fi
    
    rm "$CMDFILE"
    A prendre avec des pincettes... De plus il peut y avoir des "glitchs", j'étais sur une plateforme embarquée et certain des binaires utilisés ont dû être "bricolé": je ne me rappelle pas du détail mais il me semble que base64 et openssl m'avaient emmerdé...

  7. #6
    pm42

    Re : protocole smtp sous telnet

    Citation Envoyé par lou_ibmix_xi Voir le message
    Ca reste très faisable
    Bien sur et la plupart du temps, la peine de faire un script soi même : les outils et librairies sont légion.
    Mais la question était "dans telnet"... Et faire du open_ssl soit même est un chouia complexe.

  8. #7
    lou_ibmix_xi

    Re : protocole smtp sous telnet

    dans telnet
    "telnet" c'est juste une ouverture de socket, donc ce qui est fait "automatiquement" par mon script au travers de netcat devrait pouvoir être fait "à la main" avec telnet.

  9. #8
    lou_ibmix_xi

    Re : protocole smtp sous telnet

    Je pense que l'authentification faîte par mon script est basée sur un certificat (désolé pour les termes si ce n'est pas les bons), donc peut-être plus simple ("moins interactive") qu'une authentification SSL/TLS classique ?

  10. #9
    pm42

    Re : protocole smtp sous telnet

    Citation Envoyé par lou_ibmix_xi Voir le message
    "telnet" c'est juste une ouverture de socket, donc ce qui est fait "automatiquement" par mon script au travers de netcat devrait pouvoir être fait "à la main" avec telnet.
    Si tu sais faire de la cryptographie symétrique et asymétrique de tête en décodant des caractères qui vont s'afficher et dont certains vont être filtrés/changés par l'affichage, sans problème.

  11. #10
    lou_ibmix_xi

    Re : protocole smtp sous telnet

    Si tu sais faire de la cryptographie symétrique et asymétrique de tête en décodant des caractères qui vont s'afficher et dont certains vont être filtrés/changés par l'affichage, sans problème.
    Lire du 3DES à la volée se fait bien une fois qu'on a un peu l'habitude...
    Blague à part, c'était le but de mon intervention #8, le problème va se poser dans l'interactivité, pas vraiment dans l'encodage/décodage mais c'est vrai que pour moi un ordinateur possède un shell avec des "pipes" et autres redirections... Avec l'utilisation d'un certificat d'authentification, l'interactivité disparaît, et c'est faisable "à la main"... Mais je ne sais pas si c'est faisable avec un serveur SMTP "grand public", le script en question avait été fait pour un système qui se connectait à un serveur SMTP du CNRS et je bossais avec l'admin du serveur, il a peut-être fait des trucs côté serveur qu'un fournisseur d'email ne fera jamais...
    Pour finir, j'ai également interpréter le "telnet" par "à la main", ce qui est (je pense) vrai d'un point de vu pédagogique et technique, si tu veux absolument utiliser "telnet" à la place de "netcat" je dirais que ça doit être faisable, tu ouvres ta session telnet, tu redirige ses stdin et stdout vers des pipes et tu remplaces "netcat" par des lectures écritures sur ces pipes...

  12. #11
    pm42

    Re : protocole smtp sous telnet

    Comme je te disais, je n'ai pas le moindre doute sur la faisabilité mais aussi l'impression que la question venait de quelqu'un qui voulait faire ça sans apprendre ni comprendre simplement en tapant 2 ou 3 commandes...
    Ce qu'on pouvait faire autrefois, avant les authentifications.
    C'est dans ce sens que j'ai compris "avec telnet". Si on l'interprète comme toi, je suis 100% d'accord (au risque de me répéter).

  13. #12
    JPL
    Responsable des forums

    Re : protocole smtp sous telnet

    Citation Envoyé par pm42 Voir le message
    Je suggérerais dans ce cas de commencer par la langue française : c'est compliqué et la maitriser mieux permettrait :
    - de rendre vos posts plus compréhensibles et agréables à lire
    - de comprendre les réponses qui vous sont faites, par exemple le sens du mot "euphémisme"
    - avec un peu de chance, de lire et comprendre les énoncés des sous-forums et donc de ne pas poser une question sur SMTP dans la partie "langages de programmation"
    Remarque désobligeante dans l'absolu... et d'autant plus ici que luke-paule n'est pas Français(e).
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  14. #13
    pm42

    Re : protocole smtp sous telnet

    Citation Envoyé par JPL Voir le message
    Remarque désobligeante dans l'absolu... et d'autant plus ici que luke-paule n'est pas Français(e).
    Ok, mea culpa, j'étais ronchon et j'ai confondu avec le langage semi-sms parfois utilisé.

Discussions similaires

  1. telnet et ssh
    Par invite9d4981e7 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 11/05/2012, 00h47
  2. librairie protocole lcd sous ATmega
    Par inviteb61e4847 dans le forum Électronique
    Réponses: 6
    Dernier message: 23/02/2011, 10h17
  3. Cherche Script pour configuration SMTP et POP sous linux
    Par invite9d52c77c dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 05/04/2009, 11h51
  4. Diels Alder sous micro-ondes, PROTOCOLE
    Par invitefd128b33 dans le forum Chimie
    Réponses: 0
    Dernier message: 13/02/2007, 10h16
  5. Telnet PPC et eVB (ou .NET)
    Par invite561abb17 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/01/2007, 10h24