[Resuelto] C++ Sockets

Iniciado por NOIS, 9 Noviembre 2014, 12:44 PM

0 Miembros y 1 Visitante están viendo este tema.

NOIS

Hola, necesito saber como hacer un programa en c++ que pueda enviar e-mails automáticamente.

El tema es que no quiero que sea nada de Visual c++ ni nada parecido, y a ser posible que no necesite bibliotecas de terceros mientras haya alguna forma de hacerlo con lo que c++ te ofrece.
Gracias! :)

PD: Programo en y para la plataforma Windows.
NOIS dev7

someRandomCode

Si programas para Windows, si o si vas a usar las librerias dinamicas de Windows.
Quieras o no, cuando un programa de Windows se carga, se cargan ciertas librerias obligadamente.
Como te quieras ir por lo bajo vas a tener que usar sockets.
Como te quieras ir por lo alto HINTERNET.
En ambos casos para enviar mails vas a tener que aprender a usar TLS porque los servidores SMTP reconocidos lo usan (ej: Google).
Asique tenes un par de opciones, incluidas no usar los servidores SMTP ajenos y programar un SMTP relay, que tiene sus problemas, como que la mayoria de los servidores de correo entrante te lo van a mandar derechito a la carpeta SPAM/Indeseado.

Para TLS TENDRIAS que usar una libreria como OpenSSL.

En cuanto a las librerias, usarlas podes tranquilamente, si no queres repartir DLLs enlaza estaticamente las que te lo permitan.

Retornando, C++ ofrece Streams pero no sockets nativamente, asique si te respondo asi la pregunta, NO TIENE LO QUE NECESITAS DE SERIE, NECESITAS INCLUIR OTRAS LIBRERIAS COMO WS2 O WINHTTP

NOIS

Gracias por responder tan rápidamente.

No me importa si tengo que aprender una forma de hacerlo a bajo nivel, de hecho casi lo prefiero para así saber más certeza que hace exactamente mi programa.
Partiendo de eso me gustaría saber cual de las opciones entre WS2 y WINHTTP me recomendarías.
NOIS dev7

someRandomCode

Si queres controlar el protocolo y saber exactamente que esta haciendo tu programa, vas a tener que ir con WinSock(WS2), eso si, recorda que si el tema es enviar mails vas a tener que implementar POP/IMAP y TLS.
ej:
Recibis Greeting
Envias USER
Recibis OK
Envias PASSWD
Recibis STARTTLS
(Inicias TLS por tu lado, encriptas el password)
Envias el password cifrado
Recibis OK,
Comenzas a enviar las partes del correo con sus repsectivos headers


Para ver el protocolo correctamente definido tenes el RFC, que ta aca:
https://www.ietf.org/rfc/rfc1939.txt

NOIS

Muchas gracias someRandomCode, lo miraré luego con detenimiento. :)
NOIS dev7