Java wybrane technologie



Podobne dokumenty
Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail

Blok I6 Nowoczesne postaci dokumentów - tworzenie i wymiana dokumentów komputerowych

Blok I6 Poczta elektroniczna, szyfrowanie i podpis elektroniczny

Poczta elektroniczna

Sieci Komputerowe. Protokół POP3. Protokół IMAP4 Internet Mail Access Protocol version 4. dr Zbigniew Lipiński

Lab5 - Badanie protokołów pocztowych

PROTOKOŁY OBSŁUGI POCZTY ELEKTRONICZNEJ

Bezpieczeństwo poczty elektronicznej

Sieci komputerowe i bazy danych

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Architektura aplikacji sieciowych. Architektura klient-serwer

Laboratorium 3.4.3: Usługi i protokoły

B.B. Połączenie kończy polecenie exit.

Teoria sieci komputerowych

Zakładanie konta

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Przykład usługi internetowej

Poczta elektroniczna. Podstawowe protokoły:

Informacje które należy zebrać przed rozpoczęciem instalacji RelayFax.

Dr Michał Tanaś(

Plan wykładu. 1. Poczta elektroniczna protokół SMTP, protokół POP, protokół IMAP. 2. Zdalna praca - Telnet. 3. Transfer plików usługa FTP.

1. FTP 2. SMTP 3. POP3

Budowa wiadomości SMTP. autorzy: Aleksandra Wichert Marcin Żurowski

Klient poczty elektronicznej - Thunderbird

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Bezpieczeństwo poczty elektronicznej

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

KURSY I SZKOLENIA REALIZOWANE W RAMACH PROJEKTU:

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Bazy Danych i Usługi Sieciowe

URL. Budowa URL (ang. Uniform Resource Locator): working#downloading

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

1 IMAP czy POP3? 2 Instalacja programu Mozilla Thunderbird

Analiza ruchu w sieci przy pomocy programu Wireshark

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Bezpieczny system poczty elektronicznej

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Sieci komputerowe Warstwa aplikacji

SMTP co to takiego? SMTP Simple Mail Transfer Protocol (Protokół Prostego Przesyłania Poczty) RFC 2821

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Technologie cyfrowe semestr letni 2018/2019

Wiadomości. ZPKSoft Doradca. Wstęp.

Konfiguracja programów pocztowych dla studenckiej poczty elektronicznej

Pełna specyfikacja pakietów Mail Cloud

Manual konfiguracji konta dla fax2mail

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Konfigurowanie konta pocztowego w programie Netscape (wersja 7.2)

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2012 POCZTA ELEKTRONICZNA PROTOKÓŁ SMTP PRZYKŁADY KOMUNIKACJI

Architektura typu klient serwer: uproszczony klient POP3

Manual konfiguracji konta dla fax2mail

Spis treści 1. Założenia ogólne 2. Wymagania 3. Typy SMSów 4. Statusy SMSów 5. Wysyłanie SMSów - Web API 6. Wysyłanie SMSów - 7.

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

Zalecenia standaryzacyjne dotyczące bezpieczeństwa wymiany danych osobowych drogą elektroniczną. Andrzej Kaczmarek Biuro GIODO

INSTRUKCJE UŻYTKOWNIKÓW

Serwer poczty Postfix. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Manual konfiguracji konta dla fax2mail opcji BP Basic oraz BP Fiber

Odbieranie wiadomości elektronicznych.

Typowa trasa przesyłania poczty w sieci Internet. Bardziej skomplikowana trasa przesyłania poczty. MTA. Sieć rozległa. inq. outq. smtpd. locs.

SSL (Secure Socket Layer)

Wybrane protokoły górnych warstw OSI

4. Podstawowa konfiguracja

Kolejkowanie wiadomości Standard MQ (JMS)

Projekt e-deklaracje 2

Pełna specyfikacja pakietów Mail Cloud

Dr Michał Tanaś(

Teoretyczne wprowadzenie do programu pocztowego Microsoft Outlook 2007

Poradnik korzystania z usługi FTP

INSTRUKCJA OBSŁUGI KLIENTA POCZTY WWW

Należy zalogować się do starego systemu pocztowego, znajdującego się pod adresem podanym powyżej. Kliknąć 'Options'

Aktualizacja SMSFall v Data publikacji:

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Rozwiązania internetowe iplanet

Konfiguracja programu MS Outlook 2007 dla poczty w hostingu Sprint Data Center

Krótka instrukcja instalacji

Komunikator internetowy w C#

Konfiguracja programu pocztowego dla kont w domenie spcsk.pl

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

Protokoły internetowe

TIN Techniki Internetowe lato 2015

WHEEL LYNX SSL/TLS DECRYPTOR. najszybszy deszyfrator ruchu SSL/TLS

Wstęp Zagrożenia związane z funkcjonowaniem systemów

Internetowy serwis Era mail Aplikacja sieci Web

Pełna specyfikacja pakietów Mail Cloud

INFORMATYKA dla kierunku MECHATRONIKA

Laboratorium - Poznawanie FTP

Instrukcja konfiguracji funkcji skanowania

Konfiguracja konta pocztowego w Thunderbird

Protokoły Internetowe

Protokoły komunikacyjne

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Ćwiczenie 8. Rozległe sieci komputerowe

Protokoły sieciowe - TCP/IP

Instrukcja obsługi Outlook Web App i konfiguracji Thunderbird

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Transkrypt:

Java wybrane technologie spotkanie nr 2 JavaMail 1

Wprowadzenie JavaMail 1.4 (opiera się na JavaBean Activation Framework (JAF) 1.1) odbieranie, tworzenie i wysyłanie wiadomości elektronicznych dla twórców Mail User Agent (MUA), a nie Mail Transfer Agent (MTA) wiele protokołów obsługiwanych w jeden sposób opcjonalny pakiet do Java SE, zawiera się w Java EE od kwietnia 2006 implementacja SUNowska jest dostępna na licencji CDDl jest też otwarta implementacja JavaMail 1.3 na licencji GNU 2

Jak działa poczta? 3

Podział specyfikacji wysyłanie i odbieranie wiadomości w sposób niezależny od konkretnego protokołu podłączanie kolejnych protokołów 4

Protokoły Simple Mail Transfer Protocol (SMTP) nie radzi sobie dobrze z plikami binarnymi (dlatego powstało MIME) nie weryfikuje nadawcy serwer SMTP może wymagać uwierzytelnienia 5

S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM:<sender@mydomain.com> S: 250 Ok C: RCPT TO:<friend@example.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: test message C: From: sender@mydomain.com C: To: friend@example.com C: C: Hello, C: This is a test. C: Goodbye. C:. S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye 6

Protokoły c.d. Post Office Protocol (POP) kolejkuje wiadomości dla osób, które nie mogą być bez przerwy w sieci i odbierać poczty przy pomocy SMTP zazwyczaj wiadomości są pobierane i kasowane z serwera i przetwarzane na komputerze klienta (resztę symulują programy pocztowe) każdy list musi być pobierany razem z załącznikami i jego części nie można w łatwy sposób pomijać nie ma możliwości przeszukiwania kolejki jest propozycja POP4 z m.in. podstawowymi folderami i flagowaniem wiadomości Internet Message Access Protocol (IMAP) Multipurpose Internet Mail Extension (MIME) i inne 7

S: <wait for connection on TCP port 110> C: <open connection> S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us> C: USER mrose S +OK User accepted C: PASS mrosepass S +OK Pass accepted C: STAT S: +OK 2 320 C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S:. C: RETR 1 S: +OK 120 octets S: <the POP3 server sends message 1> S:. C: DELE 1 S: +OK message 1 deleted C: RETR 2 S: +OK 200 octets S: <the POP3 server sends message 2> S:. C: DELE 2 S: +OK message 2 deleted C: QUIT S: +OK dewey POP3 server signing off (maildrop empty) C: <close connection> S: <wait for next connection> Opracował 8

Najważniejsze klasy z javax.mail Session Message Address Authenticator Transport Store Folder używa się też klasy z javax.mail.internet 9

Wysyłanie wiadomości 10

javax.mail.session zawiera dane konfiguracyjne, np. dostępne klasy transport provider ma prywatne konstruktory, tworzymy przy pomocy Fabryki Properties props = new Properties(); //wypełniamy informacje o serwerze, użytkowniku, haśle, itp. Session session = Session.getDefaultInstance(props, null); lub Properties props = new Properties(); //wypełniamy informacje o serwerze, użytkowniku, haśle, itp. Session session = Session.getInstance(props, null); drugi parametr to obiekt Authenticator zazwyczaj można współdzielić sesję (nawet pracując na wielu skrzynkach); wtedy użytkownika i hasło podaje się podczas komunikacji 11

javax.mail.message klasa abstrakcyjna należy korzystać z javax.mail.internet.mimemessage w nagłówkach należy używać jedynie znaczki US ASCII, chociaż w niektórych inne znaczki są odpowiednio kodowane MimeMessage message = new MimeMessage(session); Message implementuje Part, a MimeMessage implementuje MimePart //message.setcontent("test 1, 2, 3", text/plain ); message.settext("test 1, 2, 3");//skrót dla wiad. tekstowych message.setsubject("wiadomość testowa"); 12

javax.mail.address klasa abstrakcyjna należy korzystać z javax.mail.internet.internetaddress InternetAddress address; //ala = new InternetAddress("ala@mimuw.edu.pl"); ala = new InternetAddress("ala@mimuw.edu.pl", "Ala ma kota"); poprawność podawanych adresów nie jest sprawdzana podajemy zarówno adres od jak i do (większość serwerów obecnie nie pozwala wpisywać dowolnego adresu od) message.setfrom(ala); message.setreplyto(new InternetAddress[] {ala}); message.addrecipient(message.recipienttype.to, ola); message.addrecipient(message.recipienttype.cc, ala); 13

javax.mail.authenticator klasa abstrakcyjna należy ją rozszerzyć i zaimplementować metodę getpasswordauthenticator(), która ma zwracać obiekt PasswordAuthentication zawierający nazwę użytkownika i hasło... odczytywanie z pliku pytanie użytkownika Authenticator przekazuje się jako drugi parametr tworząc sesję 14

javax.mail.transport klasa abstrakcyjna można jednorazowo wysłać pojedynczą wiadomość Transport.send(message); można też wysłać kilka wiadomości utrzymując jedno połączenie Transport transport = session.gettransport("smtp"); transport.connect("students.mimuw.edu.pl", "xx123456", "xxx"); transport.sendmessage(message, message.getallrecipients()); transport.close(); ustawiając session.setdebug(true) można podejrzeć komunikację z serwerem 15

Pobieranie wiadomości 16

javax.mail.store/folder Store store = session.getstore("pop3"); store.connect("poczta.o2.pl", "login", "hasło"); Folder folder = store.getfolder("inbox");//dla imap mogą być inne folder.open(folder.read_only); Message[] messages = folder.getmessages(); //implementacja SUNowska ściąga wiadomości dopiero jak są dotykane for (Message m : messages) System.out.println(m.getContent()); folder.close(false); store.close(); 17

odpowiadanie Istnieje skrót pozwalający wygodnie odpowiadać na wiadomości //parametr wskazuje czy odpowiedzieć do wszystkich (true), czy tylko do wysyłającego (false) MimeMessage reply = (MimeMessage) message.reply(false); reply.setfrom(adres); reply.settext("żadna treść nie jest automatycznie tworzona"); Transport.send(reply); odpowiedź jest stosowanie zaadresowana tytuł odpowiedzi jest poprzedzony przez Re: 18

przekazywanie //analogicznie załączniki //tworzymy widomość Message forward = new MimeMessage(session); //wypełniamy nagłówek forward.setsubject("fwd: " + message.getsubject()); forward.setfrom(new InternetAddress(from)); forward.addrecipient(message.recipienttype.to, new InternetAddress(adresDo)); //wiadomość będzie się składała z kilku części //tworzymy część z dodawaną treścią BodyPart messagebodypart = new MimeBodyPart(); messagebodypart.settext( "Oto oryginalna wiadomość:\n\n"); 19

przekazywanie //tworzymy zlepek części i wstawiamy dodawaną treść Multipart multipart = new MimeMultipart(); multipart.addbodypart(messagebodypart); //tworzymy część z oryginalną wiadomością messagebodypart = new MimeBodyPart(); messagebodypart.setdatahandler(message.getdatahandler()); //dodajemy oryginalną wiadomość do zlepka multipart.addbodypart(messagebodypart); //wstawiamy zlepek do wiadomości forward.setcontent(multipart); //wysyłamy Transport.send(forward); 20

Bezpieczeństwo TLS certyfikaty keytool 21