Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NOIS en 9 Noviembre 2014, 12:44 pm



Título: [Resuelto] C++ Sockets
Publicado por: NOIS en 9 Noviembre 2014, 12:44 pm
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.


Título: Re: Ayuda con C++
Publicado por: someRandomCode en 9 Noviembre 2014, 12:53 pm
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


Título: Re: Ayuda con C++
Publicado por: NOIS en 9 Noviembre 2014, 13:06 pm
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.


Título: Re: Ayuda con C++
Publicado por: someRandomCode en 9 Noviembre 2014, 13:44 pm
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


Título: Re: Ayuda con C++
Publicado por: NOIS en 9 Noviembre 2014, 14:05 pm
Muchas gracias someRandomCode, lo miraré luego con detenimiento. :)