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



Podobne dokumenty
Java wybrane technologie

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

Blok I6 Poczta elektroniczna, szyfrowanie i podpis elektroniczny

Poczta elektroniczna

PROTOKOŁY OBSŁUGI POCZTY ELEKTRONICZNEJ

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

Lab5 - Badanie protokołów pocztowych

Sieci komputerowe i bazy danych

Bezpieczeństwo poczty elektronicznej

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

Teoria sieci komputerowych

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

Poczta elektroniczna. Podstawowe protokoły:

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

Architektura aplikacji sieciowych. Architektura klient-serwer

Przykład usługi internetowej

Laboratorium 3.4.3: Usługi i protokoły

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

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

Bazy Danych i Usługi Sieciowe

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

Bezpieczeństwo poczty elektronicznej

Zakładanie konta

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

1. FTP 2. SMTP 3. POP3

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dr Michał Tanaś(

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

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

Sieci komputerowe Warstwa aplikacji

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

KURSY I SZKOLENIA REALIZOWANE W RAMACH PROJEKTU:

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

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

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

Dr Michał Tanaś(

TIN Techniki Internetowe lato 2015

Instrukcja konfiguracji funkcji skanowania

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

4. Podstawowa konfiguracja

1. Model klient-serwer

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

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

Wiadomości. ZPKSoft Doradca. Wstęp.

Laboratorium - Poznawanie FTP

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

Klient poczty elektronicznej - Thunderbird

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

Architektura typu klient serwer: uproszczony klient POP3

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

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

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

Technologie cyfrowe semestr letni 2018/2019

Sieci komputerowe. Wykład 9: Poczta elektroniczna. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

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

Komunikator internetowy w C#

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

Analiza ruchu w sieci przy pomocy programu Wireshark

Krótka instrukcja instalacji

Protokoły sieciowe - TCP/IP

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

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.

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

1 IMAP czy POP3? 2 Instalacja programu Mozilla Thunderbird

Konfiguracja programów pocztowych dla studenckiej poczty elektronicznej

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

Bezpieczny system poczty elektronicznej

Konfiguracja programu pocztowego dla kont w domenie spcsk.pl

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji

Rozwiązania internetowe iplanet

Protokoły Internetowe

Mediatel 4B Sp. z o.o., ul. Bitwy Warszawskiej 1920 r. 7A, Warszawa,

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

Pełna specyfikacja pakietów Mail Cloud

Internetowy serwis Era mail Aplikacja sieci Web

Warstwa aplikacji. część 2. Sieci komputerowe. Wykład 10. Marcin Bieńkowski

IIIIIIIIIIIIIIIMMIMMIII

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Manual konfiguracji konta dla fax2mail opcji BP Basic oraz BP Fiber

Zajęcia e-kompetencje

Manual konfiguracji konta dla fax2mail

RMS Express poczta elektroniczna

Mapa wykładu. 2.6 Poczta elektroniczna. 2.7 FTP 2.8 Dystrybucja zawartości. 2.9 Dzielenie plików P2P SMTP, POP3, IMAP

Protokoły komunikacyjne

Rozproszone systemy Internetowe

Wybrane protokoły górnych warstw OSI

Procedura migracji opisana jest w zrzutach poniżej. 1. Należy pobrać aplikację Mozilla Thunderbird Portable Edition

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 14 Protokoły sieciowe

Gatesms.eu Mobilne Rozwiązania dla biznesu

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Manual konfiguracji konta dla fax2mail

Kolejkowanie wiadomości Standard MQ (JMS)

Zdalne logowanie do serwerów

Instrukcja konfiguracji programów pocztowych do obsługi poczty

Pełna specyfikacja pakietów Mail Cloud

Konfiguracja konta pocztowego w Thunderbird

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

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

Transkrypt:

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

Wprowadzenie JavaMail 1.4 (opiera się na JavaBean Activation Framework (JAF) 1.1) odbieranie, tworzenie i wysyłanie wiadomości elektronicznych w sposób niezależny od konkretnego protokołu programowanie aplikacji Mail User Agent (MUA), programowanie protokołów 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

Machanizm funkcjonowania poczty elektronicznej Opracował Do: jacek@b.org Od: ania@a.org Drogi Jacku,... Do: jacek@b.org Od: ania@a.org Drogi Jacku,... MUA Ani POP3 MUA Jacka SMTP smtp.a.org DNS Internet mail exchange server dla b.org? SMTP mx.b.org pop3.b.org mx.b.org DNS ns.b.org 3

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 (rozszerzenie SMTP-AUTH) 4

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 5

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 oraz 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 6

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

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

Wysyłanie wiadomości 9

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 10

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

MIME SMTP umożliwia jedynie przysyłanie 7-bitowych znaków ASCII Multipurpose Internet Mail Extension (MIME) to mechanizm umieszczania w poczcie innych znaków narodowych umieszczania w poczcie nietekstowych załączników łączenia w jedne przesyłce kilku rodzai zawartości (ang. Multipart Message) MIME dodaje nowe nagłówki do wiadomości, np. Content-type standardowe nagłówki: To:, Subject:, From: i Date: Można używać znaki narodowe w nagłówkach =?charset?encoding?encoded text?= Kodowanie i dekodowanie wykonują programy pocztowe Wiadomości MIME mogą być przesyłane przez stare serwer 12

Przykład wiadomości wieloczęściowej Opracował Content-type: multipart/mixed; boundary="frontier" MIME-version: 1.0 To jest wieloczesciowa wiadomosc w formacie MIME. (wiadomość dla starych klientów, przez nowych ignorowana) --frontier Content-type: text/plain To jest zawartosc wiadomosci --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 PGh0bWw+CiAgPGh1YWQ+CiAgPC9oZWFkPgogIDxib2R5gogICAgPHA+VGhpcyBp cybpcyb0agugym9kesbvzib0agugbwvzc2fnzs48l3a+ciagpc9ib2r5pgo8l2h 0bWw+Cg== 13

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); 14

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ę 15

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 16

Pobieranie wiadomości 17

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(); 18

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 stosownie zaadresowana tytuł odpowiedzi jest poprzedzony przez Re: 19

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"); 20

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); 21

Bezpieczeństwo TLS certyfikaty keytool 22