[C con Clase] Enviar mail desde builder c++ con SSL

Salvador Pozo salvador en conclase.net
Vie Nov 26 17:12:26 CET 2010


El pasado 2010-11-26 15:39:51, Ernesto Luis escribió:
 
EL> Gracias por tu respuesta,
EL> podrías enviarme algún código de prueba para tener idea de como funciona...

Hola:

En realidad es muy sencillo, basta con crear una cadena con el formato que usa el programa en consola, y usar la función "Send". Por ejemplo:

----8<------
   ULONG err;
   char nombre[256];
   char asunto[256];
   char texto[1024];
   char cmdline[4096];
   char *szTo[128];
   
   strcpy(nombre, "c:\\temp\\fichero.jpg");

   strcpy(asunto, "Mensaje de prueb.\n");
   strcpy(texto, "Mensaje de texto a enviar.\n");

   sprintf(cmdline, "-body \"%s\" -q -f direccion_envio en servidor.com -server "
       "mail.servidor.com -u usuario -pw contraseña -attach %s -base64 "
       "-subject \"%s\"", 
       texto, 
       nombre, // adjunto
       asunto // asunto
        );

   // Añadir direcciones To:
   strcpy(azTo, " -t destino en servidor.com");
   strcat(cmdline, szTo);

   err = Send(cmdline);
   switch(err) {
         case 0: sprintf(cad, "mensaje enviado"); break;
         default: sprintf(cad, "error %ld", err); break;
         break;
   }
----8<------

El formato del comando es:
-body "<cuerpo del mensaje>" -q -f <dirección del remitente> -server <nombre del servidor de correo> -u usuario de correo -pw <contraseña> -attach <nombre completo de fichero adjunto[,segundo[,tercero...]> -base64 -subject \"<asunto>\" -t <direcciondestino[,segunda...]> -c <direccioncopia[,segunda]> -b <direccionoculta[,segunda]>

Todo en una línea.

Por supuesto, los adjuntos y las direcciones de copia y copia oculta son opcionales.

No le he probado con direcciones de gmail, pero sí con direcciones de "conclase.net", y funciona.

Necesitas enlazar el programa con la librería "blat.lib" o "blat.a" en GCC.

También necesitas tener acceso a la dll "blat.dll".

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase