[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