pyza Opublikowano 25 Stycznia 2004 Zgłoś Opublikowano 25 Stycznia 2004 Witam mam do Was prośbę. Mógłby mi ktoś pomoc w znalezieniu takiego programu w Javie "napisać klienta poczty (wysyłanie poczty SMTP i czytanie POP3)" Będę bardzo wdzięczny za pomoc Mogę nawet zapłacić za niego.. Licze na Was :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 25 Stycznia 2004 Zgłoś Opublikowano 25 Stycznia 2004 Zapewne potrzebujesz to na zaliczenie or sth. Jesli tak, powinni Cie nauczyc tez wczesniej Javy i nie powinno byc problemu. Jesli nie to ja raczej za bardzo nie pomoge bo na Javie sie nie znam. Ale moze przydadza sie zrodelka takich klientow w C: /*** Nazwa programu : smtp_klient Ver.0.1** Opis : program do wysylania poczty** Uzycie : smtp_klient [do_kogo] [na_jaki_host]** Wymagania : UNIX/LINUX + Development **/#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <errno.h>#include <string.h>//////////////////////struct hostent *host;struct sockaddr_in adres;int gnz,x;FILE *d;char buf1[15];char buf2[40];char buf3[1024];///////////////////////////////////MAIN/MAIN/MAIN////////////////////////////int main(int argc, char** argv){ printf("nttt------------------------n"); printf("ttt SMTP-klient Ver.0.1n"); printf("ttt------------------------nn"); if (argc<3) { printf("Uzycie: %s [adresat] [host_docelowy]n",argv[0]); printf("Uwaga: program uzywa formy adresat@host_docelowyn"); exit(0); } host=gethostbyname(argv[2]); if (!host) { perror("gethostbyname"); exit(1); } bzero((char *)&adres,sizeof(adres)); //zerowanie struktury adres fprintf(stderr,"Tworzenie wiadomosci: nn"); bcopy(host->h_addr,(char*)&adres.sin_addr,host->h_length); adres.sin_family=host->h_addrtype; adres.sin_port=htons(25);/////////////////////////////////////////////////////////////////////// if ((gnz=socket(AF_INET,SOCK_STREAM,0))==-1) { perror("BLAD podczas tworzenia gniazda"); return 1; } if (connect(gnz,(struct sockaddr *)&adres,sizeof(adres))<0) { close(gnz); switch (errno) { default : perror("Nie moge polaczyc!"); return 1; } } printf("<ADRES NADAWCY>: "); scanf("%s",&buf1); printf("n<TEMAT>: "); scanf("%s",&buf2); printf("n<TEKST>: "); //w tym miejscu powinna znalezc sie obsluga //wpisywania dlgiego tekstu i konczenie go . // jak w programie mail scanf("%s",&buf3); if (!(d=fdopen(gnz,"w"))) { perror(""); exit(0); }////////////////////////////////////////////////////////////////////// fprintf(d,"helo HOSTn"); fprintf(d,"mail from: <%s>n",buf1); fprintf(d,"rcpt to: <%s>n",argv[1]); fprintf(d,"datan"); fprintf(d,"To: %sn",argv[1]); fprintf(d,"Subject: %sn",buf2); fprintf(d,"%sn",buf3); fprintf(d,".n"); fprintf(d,"quitn"); fflush(d); //wysłanie zawartosci bufora do pliku zwiazanego ze //strumieniem (u nas plik to gniazdko) shutdown(gnz,2); //zamknięcie połaczenia close(gnz); //zwolnienie deskryptora gniazda} /* pop.c** Nazwa programu : pop** Opis : program do odbioru poczty (pop3)** Uzycie : pop [host]** Wymagania : UNIX/LINUX + Development **/#include <stdio.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <curses.h>int gnz, i, q, lp=0;char buf[1024];char ret[20]={"RETR "};char usun[20]={"DELE "};char znak, wyb;void przeglad();void usuwanie();WINDOW *okno;int main(int ilarg, char** argv){ struct hostent *host; struct servent *serv; struct sockaddr_in adres; char nazwa[100]; char haslo[100]; char uz[20]={"USER "}; char ha[20]={"PASS "}; if (ilarg<2) { printf("Uzycie: %s hostn,argv[0]");return 1;} okno=initscr(); scrollok(okno,1); wrefresh(okno); cbreak(); bzero((char*)&adres, sizeof(adres)); //zerowanie struktury adres adres.sin_family=AF_INET; host=gethostbyname(argv[1]); if(host!=NULL) bcopy(host->h_addr, (char*)&adres.sin_addr, host->h_length); else { perror("Blad: nie moge znalezc hosta"); endwin(); return 1; } serv=getservbyname("pop-3", "tcp"); //łaczy sie z serwerem i sprawdza //numer portu dla pop-3 if(serv!=NULL) { adres.sin_port=serv->s_port; } else { perror("Blad getservbyname"); endwin(); return 1; } gnz=socket(PF_INET, SOCK_STREAM,0); if (gnz==-1) { perror("Blad funkcji socket"); endwin(); return 1; } if (connect(gnz, (struct sockaddr*)&adres, sizeof(adres))<0) { close(gnz); perror("Nie moge polaczyc"); endwin(); } i=read(gnz, buf, sizeof(buf)); write(0, buf, i); do { wprintw(okno, "nPodaj nazwe skrzynki pocztowej: "); getstr(nazwa); for (q=5; q<=4+strlen(nazwa); q++) { uz[q]=nazwa[q-5]; } wprintw(okno,"Podaj haslo: "); q=0; do { znak=getch(); mvwdelch(okno,2,13); if (znak==10) break; else haslo[q++]=znak; }while(znak!=10); haslo[q]=0; for (q=5; q<=4+strlen(haslo); q++) { ha[q]=haslo[q-5]; } write(gnz, uz, strlen(uz)); write(gnz,"rn",2); i=read(gnz, buf, sizeof(buf)); //write(0, buf, i); if (buf[0]=='+') { write(gnz, ha, strlen(ha)); write(gnz,"rn",2); i=read(gnz, buf, sizeof(buf)); //write(0, buf, i); } clear(); if(buf[0]=='-') wprintw(okno,"Blad logowania"); lp++; }while((buf[0]=='-')&&(lp<3)); if(buf[0]=='+') wprintw(okno,"nMasz %c wiadomosci nn",buf[18]); if((buf[18]!='0')&&(buf[0]=='+')) { do { wprintw(okno," MENU n"); wprintw(okno," 1-przeglad n"); wprintw(okno," 2-usuwanie n"); wprintw(okno," 3-koniec n"); wyb=getch(); switch(wyb) { case '1': przeglad(); break; case '2': usuwanie(); break; case '3': break; } }while(wyb!='3'); } wrefresh(okno); write(gnz, "QUIT", strlen("QUIT")); write(gnz,"rn",2); wprintw(okno,"n"); wrefresh(okno); i=read(gnz, buf, sizeof(buf)); write(0, buf, i); close(gnz); endwin(); return 0;}void przeglad(){ wprintw(okno,"nPodaj numer wiadomosci do przegladniecia : n"); znak=getch(); ret[5]=znak; clear(); //czyszczenie okna wrefresh(okno); write(gnz, ret, strlen(ret)); write(gnz,"rn",2); i=read(gnz, buf, sizeof(buf)); write(0, buf, i); move(0,25);}void usuwanie(){ wprintw(okno,"nPodaj numer wiadomosci do usuniecia : n"); znak=getch(); usun[5]=znak; write(gnz, usun, strlen(usun)); write(gnz,"rn",2); clear(); //czyszczenie okna wrefresh(okno); i=read(gnz, buf, sizeof(buf)); write(0, buf, i); move(0,25); //przesuwanie do punktu 0,25}[zaczerpniete z ]http://hacking.pl/faqs/flex_tutor_progs.txt] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pyza Opublikowano 25 Stycznia 2004 Zgłoś Opublikowano 25 Stycznia 2004 WIELKIE DZIEKI !!! na pewno mi sie to przyda jutro na zaliczenie.... programowac w Javie nas niestety nie naczyli ...ale niestety wymagania od nas maja barzdo wysokie... POZDRAWIAM I JESZCZE RAZ DZIEKUJE!! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 25 Stycznia 2004 Zgłoś Opublikowano 25 Stycznia 2004 No problem =) Moze sie jeszcze przyda: ftp://ftp.rfc-editor.org/in-notes/rfc821.txt <- SMTP ftp://ftp.rfc-editor.org/in-notes/rfc1939.txt <- POP3 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pshem Opublikowano 25 Stycznia 2004 Zgłoś Opublikowano 25 Stycznia 2004 na pewno mi sie to przyda jutro na zaliczenie.... wow, na jutro to ty tego raczej nie lykniesz, a co dopiero przepisac to w javie... wiem bo pisalem serwer ftp w javie. kumepl robil serwer/klient smtp/pop i mial kapke latwiej niz ja, ale i tak zajelo mu to sporo czasu. programowac w Javie nas niestety nie naczyli ...ale niestety wymagania od nas maja barzdo wysokie... ciekawe - od kiedy wymaga sie czegos co nie zostalo przedstawione ??? na jakiej uczelni sie uczysz ?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pyza Opublikowano 30 Stycznia 2004 Zgłoś Opublikowano 30 Stycznia 2004 na PWSZ w ELBLAGU INSTYTUT INFORMATYKI STOSOWANEJ KIERUNEK AMINISTRACJA SYSTEMOW KOMPUTEROWYCH Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...