Xhack
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CercaCerca  Ultime immaginiUltime immagini  RegistratiRegistrati  Accedi  

 

 [C] Invio di email (emulazione di telnet)

Andare in basso 
AutoreMessaggio
BlackLight
Moderatore
Moderatore
BlackLight


Numero di messaggi : 277
Età : 37
Data d'iscrizione : 22.08.07

[C] Invio di email (emulazione di telnet) Empty
MessaggioTitolo: [C] Invio di email (emulazione di telnet)   [C] Invio di email (emulazione di telnet) EmptyMar Ott 02, 2007 7:33 pm

Eccovi qui un programmino in C che invia una mail a un destinatario arbitrario, specificando l'IP del server SMTP da usare come argomento:

Codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <netinet/in.h>

#define PORT            25

void addr_init (struct sockaddr_in *addr, int port, long int ip)  {
        addr->sin_family=AF_INET;
        addr->sin_port = htons((u_short) port);
        addr->sin_addr.s_addr=ip;
}

main (int argc, char **argv)  {
        int sd;
        char s[BUFSIZ],input[BUFSIZ];
        char *host;
        int port;
        struct sockaddr_in server,client;
        int sock_size=sizeof(struct sockaddr_in);

        if (argc==1)
                exit(1);

        if (argc==2)  {
                host=argv[1];
                port=PORT;
        }

        if (argc==3)  {
                host=argv[1];
                port=atoi(argv[2]);
        }

        addr_init (&server,port,inet_addr(host));

        if ((sd=socket(AF_INET,SOCK_STREAM,0))<0)
                exit(2);

        if (connect(sd, (struct sockaddr*) &server, sock_size)<0)
                exit(3);

        snprintf (s,BUFSIZ,"HELO %s\r\n",argv[1]);

        if (send(sd,s,strlen(s),0)<0)
                exit(4);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(4);

        printf ("%s",s);
        memset (s,0,sizeof(s));

        printf ("MAIL FROM: ");
        fgets (input,BUFSIZ,stdin);
        input[strlen(input)-1]=0;

        snprintf (s,BUFSIZ,"MAIL FROM: %s\r\n",input);

        if (send(sd,s,strlen(s),0)<0)
                exit(5);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(5);

        printf ("%s",s);
        memset (s,0,sizeof(s));

        printf ("RCPT TO: ");
        fgets (input,BUFSIZ,stdin);
        input[strlen(input)-1]=0;

        snprintf (s,BUFSIZ,"RCPT TO: %s\r\n",input);

        if (send(sd,s,strlen(s),0)<0)
                exit(6);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(6);

        printf ("%s",s);
        memset (s,0,sizeof(s));

        printf ("DATA: ");
        fgets (input,BUFSIZ,stdin);
        input[strlen(input)-1]=0;

        if (send(sd,"DATA\r\n",sizeof("DATA\r\n"),0)<0)
                exit(7);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(7);
        printf ("%s",s);
    memset (s,0,sizeof(s));

        snprintf (s,BUFSIZ,"%s\r\n.\r\n",input);

        if (send(sd,s,strlen(s),0)<0)
                exit(8);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(8);

        printf ("%s",s);
        memset (s,0,sizeof(s));

        if (send(sd,"QUIT\r\n",6,0)<0)
                exit(9);
        if (recv(sd,s,sizeof(s),0)<0)
                exit(9);
        printf ("%s",s);
        memset (s,0,sizeof(s));

        close(sd);
}
Torna in alto Andare in basso
http://blacklight.gotdns.org
 
[C] Invio di email (emulazione di telnet)
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» email anonime

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
Xhack :: Programmazione :: C/C++-
Vai verso: