Skocz do zawartości
pyza

klienta poczty(SMTP i POP3) w JAVIE???

Rekomendowane odpowiedzi

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 :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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!!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

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 ??

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...