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

[Résolu/Fermé]
Signaler
Messages postés
111
Date d'inscription
mercredi 20 avril 2011
Statut
Membre
Dernière intervention
18 mai 2011
-
 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

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 314
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

"voici le corps du message\r\n"
"."
"\r\n.\r\n";

Je ne reçois pas de texte
Messages postés
111
Date d'inscription
mercredi 20 avril 2011
Statut
Membre
Dernière intervention
18 mai 2011
9
Salut,

Je vais voir si le code, merci.

Au revoir.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
111
Date d'inscription
mercredi 20 avril 2011
Statut
Membre
Dernière intervention
18 mai 2011
9
Il fonctionne à merveille, merci.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 314
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.
Messages postés
111
Date d'inscription
mercredi 20 avril 2011
Statut
Membre
Dernière intervention
18 mai 2011
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).
Bonjour,
comment faire pour avoir du texte dans le message envoyer?
Est il difficile d'ajouter une option d'authentification au server smtp?
Merci