Tema destacado: Nueva página de elhacker.net en Google+ 
Autor
|
Tema: como descargo archivos mediante pop o smtp? (Leído 3,374 veces)
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
hola
no supe como donde colocar esto asi que lo hare aqui...
alguien sabe como descargar archivos del correo mediante pop o smtp?
|
|
|
|
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal.
Tienes los conceptos mal entendidos.
Mirate como trbajan POP3, SMTP, IMAP.
Para lo que dices ( descargar mail desde un Server ) necesitaras comunmente un Server que tenga implementado POP(3). Es este Protocolo, POP3, el que te servira para descargar mails hacia tu maquina. SMTP se usa para en ENVIO de mails.
IMAP para descargar mail desde tu Server local.
Para Windows Hotmail, hay una aplicacion par esto: Windows Live Mail.
Suerte.
|
|
|
|
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
ok lo que pasa es que estoy programando una aplicacion para ver mi correo, y no sabia cual de los dos se usa para descargar los archivos... pero necesito saber si existe algun comando para eso... por ejemplo, si me conectara mediante telnet... a mi cuenta pop3 como lo descargaria?
hay algun comando para eso?
|
|
|
|
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal. Buno, en principio deberias de tener cuenta en el Server POP3. Tras ello, podrias codear algo con Net::POP3 # Perl Saludos. /**** MODIFIKO ****/ http://www.cpan.org/authors/id/N/NA/NACHBAUR/pop3retr-1.2.pl
|
|
|
|
« Última modificación: 11 Abril 2009, 03:19 por averno »
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
lo siento aun no manejo perl  ... pero estoy haciendo el programa en C y ahorita ya lo hice funcionar... y puedo enviar comandos como list, retr,etc... pero tengo algunos mensajes con archivos adjuntos y quieria saber si hay algun comando para descargarlos...
|
|
|
|
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal.
Postea tu code y asi podremos ver por donde vas.
Para los archivos adjuntos, yo crei que con RETR bastaba, aunque fueran binarios??
Estas usando system() O alguna funcion de la familia exec() no?
Saludos.
|
|
|
|
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
hola creo tener una idea de lo que se tiene que hacer... al parecer el archivo se me muestra codificado como base64... creo que tengo que encontrar la parte codificada, descodificarlo y guardarlo en mi compu... por ejemplo me mande una imagen, y si ven.. esta codificada en base64 y tiene el nombre de la imagen, y abajo esta el codigo... creo que eso se necesita decodficar y guardar con el nombre y la extensión que como se marca alli... o uds que piensan? 
|
|
|
|
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal. Bueno, la verdad es que nunca he tenido cuenta ( no la he necesitado ) POP(3), y por ello no la he usado :__). Ahora, si que me pico la curiosidad porque en si, estamos jugando con MIME headers. MIME en si es como las cabeceras HTTP para HTTP. MIME entra en juego, pues son emails. POP3 es el Protocolo que nos permitira el recoger los emails, pero en el transfondo esta MIME. Es decir, que si quieres jugar con attachments, tendremos que jugar con el Content-Type de MIME. Si es text/plain pues perfecto, no hay binario de por medio y sera mas facil el guardarlo. O sea, el MIME Type es importante y con RETR no vamos a poder recoger todos los attachments. Por ello, insisto en que Perl es la mejor opcion, de lo contrario no te comas mucho la olla con telnet.. no creo que consigas todo lo que quieres, puesto que telnet sirve para conexiones en texto plano. :__). Echale un vistazo ( Linux! ) a este code: http://brebiou.cshl.org/viewcvs/*checkout*/mpc/site/perl_networking/perl_networking/scripts/ch8/pop_fetch.PL?rev=HEAD&content-type=text/plainEste script, en caso de que sea un archivo de MP3 el adjunto ( por ejemplo ), tratara de reproducirlo! Asimismo, si es un HTML ( el adjunto ) lo parseara con Lynx, y con WAV, SND e imagenes tratara de abrirlos con aplicaciones dadas. /**** MODIFIKO ****/ Si quieres pues tambien a: http://books.google.co.uk/books?id=lzSa6LVV4tcC&pg=PA208&lpg=PA208&dq=perl+Net::POP3+retrieve+attachment&source=bl&ots=yvGWotRM2Z&sig=qeCoqeQvo4u2mvVIFz8ExFPiR9s&hl=en&ei=s-fhSYyTCYyqjAeO4IDVDQ&sa=X&oi=book_result&ct=result&resnum=10#PPA213,M1Suerte. /**** MODIFIKO2 ****/ Ten en cuenta que el primer script, no usa Net::POP3 directamente, sino que Net::POP3 y MIME::Parser se encuentran en el modulo PopParser. El truco esta ( en ambos, para recoger los adjuntos ) en el uso del modulo PopParser, que te permitira el manejar las cabeceras MIME y poder asi recoger el adjunto mas facilmente. Asi, mirate este link el cual es una modificacion del script que sale en el libro de google books ( "Perl Network Programming" ): http://coding.derkeiler.com/Archive/Perl/perl.beginners/2004-07/0884.html /**** MODIFIKO3 ****/ A todo esto, donde esta el code en C que estabas programando ?????
|
|
|
|
« Última modificación: 12 Abril 2009, 15:59 por averno »
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
AJA AJA AJAJAJAJAJA  ... emmmm..  , se me habia olvidado postearlo... aqui esta, esta mal hecho porque es un codigo que fue con el que empeze, es que el otro ya tiene cosas como escibe nombre y contraseña, etc, cosas que con un fgets y printf se pueden hacer, pero algo sencillo, es este codigo que hice, //code by Belial & Grimoire
#include <stdio.h> #include <winsock2.h> #include <windows.h>
SOCKET sock; int rec();
int rec(){
char buf[100000]; int i = 0; do{ i = recv(sock,buf,sizeof(buf),0); printf("%s\n",buf); }while( i != i);
} int main(){
WSADATA wsa; HANDLE ht; struct hostent *host; struct sockaddr_in lh; char buffer[512],bu[200];
WSAStartup(MAKEWORD(2,2),&wsa); host = gethostbyname("pop.mail.yahoo.com"); sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
lh.sin_family = AF_INET; lh.sin_port = htons(110); lh.sin_addr = *((struct in_addr*)host->h_addr); memset(lh.sin_zero,8,0);
connect(sock,(struct sockaddr*)&lh,sizeof(struct sockaddr)); recv(sock,buffer,sizeof(buffer),0); printf("%s\n",buffer); while(1){ fgets(bu,sizeof(bu),stdin); send(sock,bu,strlen(bu),0); ht = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)rec,0,0,NULL); }
}
puedes escribir los comandos normales como, user nombre, pass contraseña, list, retr numero, etc... es como un mini netcat, pero mal hecho jejeje tambien lo hice para linux, el problema es que aun no se usar thread en linux, pero como lo comente, no tengo ni la menor idea de como descargar los archivos adjuntos.. je y gracias por los link, creo que me va a caer bien aprender un poco sobre perl, salu2 
|
|
|
|
« Última modificación: 12 Abril 2009, 20:54 por Belial & Grimoire »
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal..
Fsshshhshshshshshsssshhhh...!!! Buagh!! huele a socket mal cocinado.. Hmm.. Winsocks!! Mejor hubieras posteado la version de Linux. Que por cierto, si tienes algun problema con Threads en *NIX dilo hombre y te ayudamos. Todo antes que Winsocks! ( no pretendo ayudarte con semaforos ni otro tipo de IPCs controls )
Hmm... no hay API que ayude a parsear MIME, asi que un consejo: ( aunque Perl sea multiplataforma! ) coge una Distro de Linux y codea algo con Perl, como citado anteriormente.
Te divertiras mas, tendras mejores resultados.
Saludos.
|
|
|
|
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
hola jeje "winsocks"... je, lo que pasa es que empeze programando esto en linux, pero como estoy un poco mas familiarizado con win,y como no se hacer un createthread en linux, lo deje a un lado por el momento, asi que no tiene caso que poste el code de linux ya que es basicamente el msimo que poste anteriormente( claro, con las diferencias del socket)... aunque me dijeron que si se puede usar createthread asi thread_create(), y he estado haciendo preguntas en el subforo de C/C++ pero creo que no mucha gente se ha interesado por el uso de la mensajeria, ya que no tuve suerte, y pues nadie contesto... jeje aqui hay una pagina donde me muestran thread_create http://electrang.net/~mithrandir/pintos-doc/thread_8c.htmlpero todavia no lo estudio bien, pero si sabes algo, avisame porfavor, asi podria continuar con linux... bueno por otro lado, voy a continuar haciendo todo lo que pueda, mientras encuentro algun manual de perl, ya que me dieron ganas de saber manejarlo, asi podria entender el codigo que me diste,y creo que me voy a divertir bastante, ya que no solo voy a aprender ASM, ahora tambien PERL, jeje MODIFICADO--- Una pregunta... este code se puede usar en win? http://www.cpan.org/authors/id/N/NA/NACHBAUR/pop3retr-1.2.plo es para linux? es que lo intente usar con activeperl pero me dice esto Can't locate object method "new" via package "Term::ReadLine::Gnu" at pop3retr-1 .2.pl line 65. aunque creo que si por usr/bin/bash al rato lo intento en linux bueno... salu2
|
|
|
|
« Última modificación: 13 Abril 2009, 00:18 por Belial & Grimoire »
|
En línea
|
. 
|
|
|
|
TRICKY
|
Que tal.
Je, pues yo lo que digo.. y para que te empenias en usar threads? No te vale para esto fork()? Ah, y no es thread_create(), es pthread_create(). Necesitarias el header pthread.h, y compilar con -lpthread.
Usa fork() para escupir procesos si es lo que estas necesitando ... :?_) Si te empenias en threads, pues seguimos dandole. El caso es que en C, no se como vamos a hacer. Deberias de presentar una libreria para POP3 MIME.. Por ello, Perl mejor.
Saludos.
|
|
|
|
|
En línea
|
"La envidia es una declaración de inferioridad" Napoleón.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 360
Tea_Madhatter
|
hola bueno, pues ya logre hacerlo funcionar el code en perl, bueno... creo que ya alguien se dio cuenta.. jeje, y me di cuenta de 3 cosas... la primera es que el code de aqui en perl, hace lo mismo que con el mio en C, bueno... el code que poste aqui, es muy cortito porque solo coloque como conectarse y enviar comandos, y el que yo tengo ya te pide el usuario, y password, y cosas asi sin escribir tanto comando... aunque no se como hacer para que continue viendo el mensaje sin oprimir enter 2 veces, o que se detenga cuando termine el mensaje, jeje... es que con while puedo revisar el mensaje y que se detenga el final, pero tengo que opimir 2 veces enter, o puedo haer que sin oprimir 2 veces enter pueda ver el mensaje, pero no puedo detenerlo cuando llegue al final... jeje segundo, vi que es mas sencillo con perl, ya que los modulos te ayudan mucho... y solo te dedicas a hacer el codigo de lo que vas a hacer, y ya no de que vas a hacer y como lo vas a hacer... tercero, creo que lo volvere a hacer pero en perl, el problema viene que hice un programa en C que hace otras cosas que no tienen nada que ver con revisar mi correo, y volver a hacer todo eso, es mucho, y quisiera saber si existe algo como (PIPE) en linux, para hacer funcionar el programa en perl con C, o hay forma de programar en C con perl? y una extra... me dijero que los modulos de perl en windows, tienen problemas... y yo se que deberia quederme en linux, pero las personas que conozco no les gusta porque dicen que no saben manejarlo..etc, aunque es comprensible, no les interesan las computadoras, para ellos con que les funcione para revisar su correo y ver sus paginas de hi5, etc, son felices, pero aveces los programas que yo hago ellos tambien los usan, asi que tengo que seguir en win, pero en win instale active perl, y quisiera saber... si tengo problemas con los modulos, hay algun lugar donde pueda descrgarlos para windows? o como siempre tengo que esperarme hasta que ellos saquen una nueva version con el modulo que necesito? y para usar perl, siempre voy a tener que instalar activeperl en mi compu, o hay otra forma de ejecutar perl? salu2 
|
|
|
|
« Última modificación: 15 Abril 2009, 19:06 por Belial & Grimoire »
|
En línea
|
. 
|
|
|
|
|