Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
2,6 MB
Nội dung
Trang 205 Chng 9: JAVAMAIL I. Các khái nim MAIL Ngày nay e-mail hay thn tã tr nên ph bin và hu nh không th thiu trong th gii Internet. E-mail cho phép gi thông p t ni này n ni khác tng t nh cách gi th truyn thng thông qua bu n. Trong cách thông thng bn phi cung p a ch ngi gi (sender), a ch ngi nhn (reciept) sau ó ngi gi mang thn u n nh bu n chuyn thi. Bu n s chuyn thn hp th ca ngi nhn. i vi thn t e-mail gi qua h thng Internet hay mng thì c ch gi/nhn ng hoàn toàn tng t. Các máy ch (mail server) cung cp cho bn ch mail (còn gi là e-mail address). Bn ghi a ch mail ca bn và ca ngi nhn, sau ó nhp vào ni dung cn gi. Mail server s gi th ca bn n mt máy ch hay mail server ca a ch ngi nhn. Mail server ni nhn s ct th vào mt ni thích hp (mail box hay còn gi là p th) trên máy ch. Ngi nhn s tin hành ng nhp (hay còng gi là login) vào hp th ca máy chc ni dung e-mail gi cho mình. thng nht gia các máy ch mail trên toàn th gii v cách thc gi nhn mail òi hi hình thành các chun v mail. u này giúp cho vic gi nhn các thông p c m bo, làm cho nhng ngi các ni khác nhau có th trao i thông tin vi nhau. Có 2 chun v Mail thng c các máy ch mail h tr là X.400 và SMTP (Simple Mail Transfer Protocol). SMTP thng i kèm vi chun POP3 và do hn ch ca SMTP mà ngày nay ngi ta dùng chun m rng ca nó là ESMTP (Extended SMTP). c ích chính ca X.400 là cho phép các mail có thc truyn nhn thông qua các loi ng khác nhau bt chp cu hình phn cng, hu hành mng, giao thc truyn dn c dùng. Còn mc ích ca chun SMTP miêu t cách u khin các thông p trên ng Internet. u quan trng ca chun SMTP là ginh máy nhn phi dùng giao thc SMTP gi Mail cho mt Server luôn luôn hot ng. Sau ó, ngi nhn sn ly Mail a h t Server khi nào h mun dùng giao thc POP (Post Office Protocol), ngày nay POP c ci tin thành POP3 (Post Officce Protocol vertion 3). Các giao thc Mail thông ng : chun X.400, chun MAIP, SMTP (ESMTP), POP3. Trong chng này ta s s ng hai giao thc :POP3 và SMTP gi nhn mail. Mô hình gi nhn mail Trc khi i vào phn chính chúng ta cùng ôn li mt s khái nim c s sau: Sende r Reveicer Mail Server trung gian Mail Server ngi i Mail Server ngi nhn ng ng Trang 206 Mail server: là mt chng trình chy di dng mt dch v. dch v này có nhim v nhn mail t máy khách gi n, phân phi mail n máy ch khác, cho phép máy khách truy cp vào ly mail, lu tr mail… Chính vì vy trc khi bn gi nhn mail n phi bit a ch ca máy ch mail (máy ang chy dch v mail). a ch này thng c gi là mail host. Giao thc gi mail (Mail transport protocol): gi mail n máy ch, trình khách phi s dng mt giao thc trò chuyn vi mail server. Tng t nh trình duyt s ng giao thc HTTP trò chuyn vi Web server. Các máy khách mun bt tay vi trình ch và gi mail lên máy ch s s dng giao thc SMTP (Simple Mail Transport Protocol). SMTP khá ni ting và c hu các máy ch mail trên th gii h tr. a ch ca máy ch nhn mail gi i c gi là outgoing mail address. Trình ch tip nhn mail theo giao thc SMTP c gi là SMTP Server. Trình khách s dng giao thc SMTP gi thi c gi là SMTP Client. Giao thc lu tr và nhn mail (mail store protocol): Khi trình ch mail tip nhn c mail. Nó tin hành lu tr mail theo mt cách thc nào ó trình khác có th d dàng truy cp vào và nhn mail v. Hin nay POP3 (Post Office Protocol) và IMAP (Internal Message Access Protocol) là hai giao thc lu tr và ly mail t hp th (Inbox) c nhiu mail server s dng. a ch ca máy ch lu tr mail cho phép máy khách truy cp vào nhn mail v c gi là incoming mail address. Các chng trình mail Client thng s dng giao thc POP3 nhn mail t trình ch. Trình ch tip nhn yêu cu ca trình khách theo giao thc POP3 c gi là POP Server. SMTP Relay: Các mail server nu nhn c mail không thuc a ch do mình qun lý, khi ó nó có trách nhim gi mail n máy ch khác vi cùng giao thc SMTP. Trong trng hp này mail server (ni chuyn tip thi) óng vai trò nh mt trình khác (mail client) i vi máy ch ni nhn. C th. Internet mail là mt h thng chuyn mail liên tc gia các máy ch mail vi nhau cho n khi nào mail n c máy chích. Các mail server a phn h tr tính nng Relay. POP before SMTP (Chng thc quyn truy cp theo giao thc POP trc khi s ng SMTP): tránh tình trng máy ch mail c li dng gi mail mt cách t. C ch POP before SMTP yêu cu máy khách mun s dng dch v mail ca máy ch phi trc ht phi ng nhp (login) vào tài khon (account) theo giao thc POP. u quá trình ng nhp thành công, c ch gi mail bng SMTP mi có th thc hin c. Mail client, Web mail: là chng trình dùng nhn mail v t trình ch và cho phép i mail lên trình ch. Nu mail client c vit di giao din Web thì nó c gi là Web mail. II. Gi mail vi th vin có sn ca javaJava cung cp cho bn mt th vin nh gn giúp bn có th gu mail mt cách d dàng, tuy nhiên vi th vin này bn không có c các tính nng cao cp nh gi file ính kèm…, s dng các tính nng cao cp bn x th vin Mail API (gii thiu trong phn sau). Th vin này có lp SmtpClient dùng gi mail. gi mail bn cung cp a ch ca ngi gi (from), a ch ca ngi nhn (to), a ch ca mail server (máy ch tip nhn mail do bn gi lên) cùng vi ni dung mà bn mun gi. Di ây là mt chng trình n gin dùng gi mail n a Trang 207 ch thek44a2@yahoo.com nh vào máy ch mail utehy.edu.vn (máy ch mail ca trng DHSP KT Hng Yên). a ch ngi gi có tht tu ý. Nhng thng là a ch ca bn ngi nhn sau khi c th xong có th hi âm (Reply) li cho n. //SendMailApp.java import sun.net.smtp.*; import java.io.*; public class SendMailApp { public static void main(String[] args) throws Exception { String host = "utehy.edu.vn"; String from = "theth@utehy.edu.vn"; String to = "thek44a2@yahoo.com"; String subject = "Test Message"; String body = "Hello this is test message for mail"; /* To i tng gi mail theo giao thc SMTP, host là a ch ca máy ch nhn mail do ta i lên */ SmtpClient mailer = new SmtpClient(host); // Thit lp a ch ca ngi gi và ngi nhn mailer.from(from); mailer.to(to); //Ly v lung xut gn vi mail PrintStream ps = mailer.startMessage(); //Din các thông tin khác ps.println("From:" + from); ps.println("To:" + to); ps.println("Subject:" + subject); ps.println();// Thêm CRLF vào trc phn ni dung ps.println(body); //Kt thúc quá trình gi mail mailer.closeServer(); System.out.println("Mail has been sent"); } } Chú ý: Hãy thay a ch From, To bng a ch e-mail mà bn mun gi. III. Gii thiu javamail API Lp SmtpClient ca java mà chúng ta s dng trên ây ch giúp bn gi mail mc n gin nht vi ni dung mail dng thun vn bn. Mt ng dng mail phía máy khách thng có các chc nng phc tp hn nh : Gi file ính kèm, d liu c nhúng c hình nh, âm thanh… thc hin nhng chc nng này java a ra mt th vin riêng chuyên lý các thao tác gi nhn mail. 1. Cài t th vin javamail Mc nh các th vin javamail API không c cài t khi bn cài JDK. Th vin này gm ba phn: Phn th nht là ht nhân ca các tác v x lý mail, nó c óng gói trong tp mail.jar. n có th download ta ch http://java.sun.com/javamail/index.html Trang 208 Phn th hai là JavaBean Activation FrameWork cn cho mi phiên bn ca java mail. Th vin này mang tên activation.jar. vi th vin này bn có th ti xung t http://java.sun.com/products/javabean/glasgow/jar.html Phn th ba là các lp c hay nhn mail t trình ch. Trong java 1.4 th vin này có tên mail.jar n t bin môi trng classpath=%CLASSPATH%; C:\JBuilderX\lib\mail.jar; C:\JBuilderX\lib\activation.jar; Chú ý: Khi bn cài JBuilder hai th vin này cng c tng cài t vào máy, bn có th tìm thy nó trong th mc Jbuilder_Home/lib 2. Các bc gi nhn mail Các bc nhn mail: o i tng mail Session. o i tng store chun b ly mail v. to i tng Store bn yêu cu ngi dùng nhp vào tên và mt khu chng thc quyn truy cp hp pháp. dng i tng Store ly vi tng Folder. Mi Folder s cha mt loi mà n mun ly. Nh Folder Inbox cha các th vin gi n. Folder trash cha các th a b xoá. Folder sent cha các th va gi i… Duyt i tng Folder ly v danh sách các th. Các bc gi mail Yêu cu ngi gi chn giao thc gi (SMTP) và nhn (POP3 hay IMAP…). Lu các thông tin này vào i tng Session. o i tng Message. i tng này s cha các thông tin v mail cn gi i nha ch ngi gi, a ch ngi nhn, tiêu mail, ni dung mail… i phng thc Transport.send() hoc phng thc sendMessage ca i tng Transport gi thi. 3. Các lp c bn x lý thao tác gi nhn mail Ta tìm hiu các gói trong th vin java mail. Hu ht các ng dng mail client cn import các th vin javax.mail, javax.mail.interner, javax.mail.activation. 3.1. Các lp liên quan n vic gi mail 3.1.1. Lp Session Lp này th hin mt phiên kt ni ti mail server. Trc khi truy cp (gi/nhn) n cn phi to ra mt i tng Session th hin cho mt phiên làm vic. ví d: //To i tng Properties cha thông tin khi to nu có Properties props=new Properties(); /*gán giá tr cho các thuc tính bng phng thc props.setProperty(PropertyName, PropertyValue) */ //To i tng Session Session session =Session.getDefaultInstance(props,null); Hoc bn có th gi phng thc getInstance() ca lp Session thay cho getDefaultInstance() to ra th hin ca i tng Session nh sau: //To i tng Properties cha thông tin khi to nu có Properties props=new Properties(); Trang 209 /*gán giá tr cho các thuc tính bng phng thc props.setProperty(PropertyName, PropertyValue)*/ //To i tng Session Session session =Session.getInstance(props,null); Trong c hai phng thc khi to i tng Session nêu trên. các thuc tính cu hình c t trong i tn Properties nên trc khi bn bn gi nhn mail bn cn thit t các thuc tính này. ví d: props.setProperty("mail.host","utehy.edu.vn"); props.setProperty("mail.from","theht@utehy.edu.vn");… ây thng thì bn truyn null cho tham s th hai vi ý ngha s dng c ch chng thc (authentication) mc nh ca mail server. S khác nhau gia hai phng thc này là getInstance() thì luôn to ra mt Session i còn getDefaultInstance() thì không to ra mt th hin mi ca Session nu nh nó ã c to ra trong cùng java virtual machine. 3.1.2. Lp Message Sau khi có i tng Session bn, gi mail bn bn cn to ra i tng Message. Tuy nhiên ít khi bn làm vic trc tip vi i tng này mà bn thng làm vic vi các p con ca nó, lp MimeMessage. ví d, bn to thông p mail chun b gi i nh sau: MimeMessage message =new MimeMessage(mailsession); u ni dung ca thông p là thun vn bn, bn có th thit t ni dung th gi bng nh: message.setText(content); u bn chnh Mime cho ni dung cn gi nu nó không phi là thun vn bn nh sau: message.setContent(content,"text/html"); u ni dung không phi thun vn bn thì bn phi chnh Mime cho nó, ni nhn mail s cn c vào Mime hin thúng ni dung ca thông p nhn c. Mt thói quen tt nên có là t cho mail mt tiêu (subject). Ngi nhn cn c vào tiêu th bit c ni dung vn tt mô t trong th. Phng thc setSubject() s giúp ta làm vic ó. Ví d: Session.setSubject(Xin chao); 3.1.3. Lp Address Sau khi bn to ra i tng Session và Message, tip n ta s dng lp Address o ra ch ca ngi gu và ngi nhn. Lp Address là lp tru tng, bn s ng lp con ca nó là InternetAddresss. Ví d bn to a ch mail t lp này nh sau: Address address =new InternetAddresss(theht@utehy.edu.vn); Hoc InternetAddresss address =new InternetAddresss(theht@utehy.edu.vn); Nu bn mun a ch e-mail có thêm thông tin din gii bn thêm s dng cú pháp nh sau: Address address =new InternetAddresss(theht@utehy.edu.vn, Hoang Trong The); Thông tin din gii này sc hin th thay khi ngi nhn c th thay cho a ch mail from. Trang 210 Sau khi to xong a ch ca ngi gi, a ch ca ngi nhn bn cn gn nó vào thông p cn gi i. Java cung cp cho bn ba loi a ch ph bin: Kiu a ch ý ngha Message.RecipientType.TO a ch ni n Message.RecipientType.CC a ch ngi gi cn lu ý Message.RecipientType.BCC a ch ngi gi cn tham kho Bn gi phng thc addRecipient() ca i tng Message gán a ch cn gi. Ví d: //To a ch Address toAddress=new InternetAddresss(“thek44a2@yahoo.com”); Address ccAddress=new InternetAddresss(“theht@walla.com”); //Gán a ch cho ngi nhn message.addRecipient(Message.RecipientType.TO, toAddress); message.addRecipient(Message.RecipientType.CC, ccAddress); t a ch ca ngi gi bn gi phng thc setFrom(). Ví d: Address myAddress=new InternetAddresss(“theht@utehy.edu.vn”); message.setFrom(myAddress); a ch ca ngi gi không quan trng, bn có tht cho nó mt a ch e-mail không có thc, nu bn t a ch ca ngi gi không có thc thì ngi nhn không th phn hi (reply) li cho bn. Ta có tht a ch ca ngi gi là mt danh sách (mng) ngi nhn có th phn hi li cho nhiu ngi cùng mt lúc. Bn gi phng thc addFrom() nh sau: Address address[]=… Message.addFrom(address); Chú ý: javamail không cung cp c ch kim tra xem a ch ca ngi gi có hp l hay không. kim tra mt a ch mail có hp l hay không không phi là d, thông thng n gin nht bn kim tra xem trong a chó có kí t @ hay không? 3.1.4. Lp Transport Lp Transport cung cp các phng thc gi mail n mail server. n gin bn gi phng thc tnh send() ca lp Transport gi i tng thông p i. Ví d: Transport.send(message); Hoc bn có th chn giao thc gi mail ti tng Session, to kt ni n trình ch mail và gi phng thc sendMessage() gi mail i: Transport transport; transport =mailSession.getStransport(smtp); transport.connnect(host, user, password); // hoc bn có th gi phng thc transport.connnect(); transport.sendMessage(message, message.getAllRecipients()); transport.close(); Trang 211 Cách th hai này nhanh hn cách th nht trong trng hp bn mun gi mt s ng ln các mail, kt ni vn c duy trì cho n khi bn gi phng thc transport.close(), trong khi kt ni vn còn m bn có th gi bao nhiêu th tu ý mà không phi kt ni li vi mail server. Trong khi phng thc transport.send() phi t ni, óng kt ni mi khi có mt thông p c gi i, do vy mt thi gian. 3.2. Các lp liên quan n vic nhn mail p Store và lp Folder: Là hai lp này phc v ch yu cho vic nhn và c mail cha trong hp th ca mail server. s dng hai lp này trc tiên bn cn chnh giao thc nhn mail. Có hai giao thc nhn mail chính là POP3 và IMAP. Ví d nu s dng giao thc POP3 thì bn khai báo gói com.sun.mail.pop3 nh sau: import com.sun.mail.pop3.*; Còn nu bn s dng giao thc IMAP thì bn khai báo gói com.sun.mail.imap nh sau: import com.sun.mail.imap.*; ng t nh lp Transport trong thao tác gi mail, bn dùng i tng Session, gi phng thc getStore() ly vi tng Store phc v cho mc ích kt ni vi mail server nhn mail. Store store =mailSession.getStore(pop3); kt ni vào mail server bn gi phng thc connect() nh sau: store.connect(host, user, password); Trong ó: host là a ch ca mail server mà bn mun ly th user/password là tài khon ng nhp vào hp th ca bn. u kt ni thành công bn ly vi tng Folder duyt mail. Folder folder = store.getFolder(“INBOX”); folder.open(Folder.READ_ONLY); Message message[]=folder.getMessages(); Các thông p mail c lu tr trên mail theo mt cu trúc cây, tng t nh cu trúc cây th mc ca hu hành. INBOX ám ch th mc cha th gi n. Chú ý: Vi giao thc POP3 bn ch có th ly mail t INBOX vi giao thc IMAP (m ng ca giao thc POP3) bn có th nhn mail trong các th mc TRASH, SENT… Phng thc getMessages() tr v mt mng các i tng Message. Bn gi phng thc getConten() ly v ni dung ca mail nh sau: for(int i=0;i<message.lenth();i++) System.out.println(((MimeMessage)message[i]).getConten()); t ã c xong th bn óng hp th và ngt kt ni: folder.close(true); store.close(); i s true cho bit có cp nht các lnh xoá mail hay không (s cp trong phn sau). Trang 212 III. Gi mail 1. Gi mail n gin Chng trình SendMailAPI di ây s gi mail i theo giao thc SMTP, SendMailAPI là chng trình java thun tuý s dng th vin java mail. Nó tng t chng trình SenMailApp chúng ta ã tìm hiu trong phn trc. Mc dù vy thay vì s ng lp SmtpClien bn s dng các lp Session, Transport ca javamail API. //SendMailAPI.java import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.util.*; public class SendMailAPI { public static void main(String args[]) throws Exception { String smtpHost = "utehy.edu.vn"; int smtpPort = 25; String from = "theht@utehy.edu.vn"; String to = "thek44a2@yahoo.com"; String subject = "Xin chao"; String content = ""; // Create a mail session Properties props = new Properties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", "" + smtpPort); Session session = Session.getDefaultInstance(props, null); // Construct the message Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); msg.setSubject(subject); msg.setText(content); // Send the message Transport.send(msg); } } Trc tiên bn to ra mt i tng Properties cha các thông tin: tên máy ch mail, ng ca mail server bng câu lnh Properties props = new Properties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", "" + smtpPort); c nh cng ca mail s là 25, nu mail hot ng trên mt cng không phi là 25 thì bn phi ch rõ cng ca mail server bng dòng lnh: props.put("mail.smtp.port", "" + smtpPort); Tip theo bn ly v mt phiên kt ni bng dòng lnh: Session session = Session.getDefaultInstance(props, null); Trang 213 Tip theo bn to ra i tng thông p và n các thông tin cn thit vào: Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); msg.setSubject(subject); msg.setText(content); Cui cùng gi thi bn gi phng thc: Transport.send(msg); n có th thay dòng lnh này bng n lnh sau: Transport tp= session.getTransport("smtp"); tp.connect(); tp.sendMessage(msg,msg.getAllRecipients()); tp.close(); u bn cha gán a ch mail server và cng ca nó thì bn phi gi phng thc: tp.connect(host,user,password); Do bn ang gi mail nên các thông tin ng nhp user,password không cn thit, n có th cung cp cho nó mt xâu rng nh sau: tp.connect(host,””,””); 2. Gi th vi ni dung có nh dng HTML Nu ni dung th là thun vn bn bn gi phng thc Message.setText(StringMsg) gán ni dung cho i tng thông p cn gi i. Nu ni dung th không phi là dng thun vn bn bn cn gi phng thc Message.setConten(StringMsg, MimeType) vi MimeType là mt xâu cho bit kiu ni dung c cha trong mail. Ví d sau minh ho cách gi th vi ni dung có nh dng HTML: // SendMailAPIFromat.java import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.util.*; public class SendMailAPIFromat{ public static void main(String args[]) throws Exception { String smtpHost = "utehy.edu.vn"; int smtpPort = 25; String from = "theht@utehy.edu.vn"; String to = "thek44a2@yahoo.com"; String subject = "Xin chao"; //Gán ni dung là mt xâu có nh dng HTML String content = "<p><b><font face=\".VnArialH\" size=\"8\">Xin chào các n</font></b></p><p><font face=\".VnTimeH\">Chúc mt ngày vui v</font></p>"; // Create a mail session Properties props = new Properties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", "" + smtpPort); Session session = Session.getDefaultInstance(props, null); // Construct the message Trang 214 Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); msg.setSubject(subject); //Gán kiu ni dung MimeType là text/html msg.setContent(content, "text/html"); // Send the message Transport tp = session.getTransport("smtp"); tp.connect("utehy.edu.vn", "", ""); tp.sendMessage(msg, msg.getAllRecipients()); tp.close(); } } Trong ví d trên bn gán ni dung là mt xâu có nh dng HTML, báo cho ngi nhn bit ni dung bên trong th có nh dng HTML bn gi phng thc msg.setContent(content, "text/html"); 3. Gi th vi file ính kèm Th vin javamail API cho phép bn gi mail vi các file ính kèm. Nhng file này thng c nhúng vào phn ni dung mail gi i dng mã hoá tng phân n (Multi – part MIME). Mt Message c xem là gm nhiu phân n. Mi phân n c gi là mt BodyPart, Tt c các BodyPart c gi là MultiPart. Da vào hai lp BodyPart và MultiPart ta có th to ra mt mail phc tp có th phân tích bi i nhn. Chng trình SendMailAttachAPI.java di ây s cho thy k thut gi mail vi file ính kèm. //SendMailAttachAPI.java import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.util.*; public class SendMailAttachAPI { public static void main(String args[]) throws Exception { String smtpHost = "utehy.edu.vn"; int smtpPort = 25; String from = "theht@utehy.edu.vn"; String to = "thek44a2@yahoo.com"; String subject = "Xin chao"; String content = "Chuc mot buoi sang tot lanh"; //Tên ca file ính kèm String fileName = "C:/test.txt"; //to i tng session Properties props = new Properties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", "" + smtpPort); Session session = Session.getDefaultInstance(props, null); //To i tng thông p [...]... Nh n mail v i các file ính kèm N u n i dung th có ch a file ính kèm b n có th tách ph n ính kèm, ph n th ra Ví d GetMailAttach .java minh ho cách ki m tra mail có file ính kèm hay không?, n u có thì ghi n i dung c a file ính kèm xu ng th m c C:\data //GetMailAttach .java import java. util.*; import javax .mail. *; import javax .mail. internet.*; import com.sun .mail. pop3.*; import java. net.*; import java. io.*;... file tu ý, b ng cách t o ra nhi u BodyPart khác nhau IV Nh n mail 1 Nh n mail n gi n nh n mail, b n k t n i vào mail server l y v các Message trong th m c INBOX Ví d GetMailAPI sau minh ho cách nh n mail t trình ch và hi n th ra màn hình //GetMailAPI .java import java. util.*; import javax .mail. *; import com.sun .mail. pop3.*; public class GetMailAPI { public static void main(String[] args) throws Exception... Trang 220 V Xoá mail 1 Xoá mail xoá mail b n m h p th v i quy n c/ghi nh sau: Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); Message[] messages = folder.getMessages(); Ti p n t c xoá: Messages[i].setFlag(Flags.Flag.DELETE,true); Ti p n óng k t n i, mail server s t ng xoá mail folder.close(true);//Chú ý b t bu c ph i là tham s true 2 Ki m tra tr ng thái c c a mail // Ki m tra... javax .mail. internet.*; import com.sun .mail. pop3.*; import java. net.*; import java. io.*; public class GetMailAttach { public static void main(String[] args) throws Exception { String smtpHost = "utehy.edu.vn"; int smtpPort = 25; //t o ra m t mail Session Properties props = new Properties(); props.put( "mail. smtp.host", smtpHost); props.put( "mail. smtp.port", "" + smtpPort); Trang 218 Session session = Session.getDefaultInstance(props,... store = session.getStore("pop3"); //K t n i v i mail server store.connect(smtpHost, "thek44a2", "abc"); //L y v th m c INBOX Folder folder = store.getFolder("INBOX"); //N u không có th m c này thì thoát if (folder == null) { System.out.println("No folder"); System.exit(1); } //M th m c l y th theo ch ch c folder.open(Folder.READ_ONLY); //L y v các th trong Mail Box Message[] messages = folder.getMessages();... static void main(String[] args) throws Exception { String smtpHost = "utehy.edu.vn"; int smtpPort = 25; //T o i t ng Session Trang 215 Properties props = new Properties(); props.put( "mail. smtp.host", smtpHost); props.put( "mail. smtp.port", "" + smtpPort); Session session = Session.getDefaultInstance(props, null); //T o i t ng Store Store store = session.getStore("pop3"); store.connect(smtpHost, "thek44a2",... các i t ng Message và hi n th ra màn hình Message[] messages = folder.getMessages(); for (int i = 0; i < messages.length; i++) { printMessage(messages[i]); } /* óng k t n i nh ng không xoá các Message t mail server folder.close(false); store.close(); */ } public static void printMessage(Message m) throws Exception { //In ph n tiêu th //L y v các a ch g i Address[] from = m.getFrom(); if (from != null)... urlName=new URLName("pop3","utehy.edu.vn",110,"INBOX","thek44a2","abc"); Folder folder = session.getFolder(urlName); ng cách này b n không c n ph i t o ra i t ng Store 2 L y v các thông tin i kèm v i mail n có th l y v các thông tin i kèm v i th nh : ngày g i, tiêu … ph ng th c printInfo sau s in ra màn hình các thông tin i kèm v i th public static void printInfo(Message m)throws Exception { //L y... msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); msg.setSubject(subject); /* T o i t ng Multipart, i t ng này dùng ch a các BodyPart */ Multipart multiPart = new MimeMultipart(); //T o ra i t ng BodyPart ch a n i dung mail BodyPart msgBodyPart = new MimeBodyPart(); msgBodyPart.setText(content); //Thêm i t ng msgBodyPart vào multiPart multiPart.addBodyPart(msgBodyPart); /*T o i t ng BodyPart th hai, i t ng này dùng ch . ca java mail API. //SendMailAPI .java import javax .mail. *; import javax .mail. internet.*; import javax.activation.*; import java. util.*; public class SendMailAPI. nhn mail Ta tìm hiu các gói trong th vin java mail. Hu ht các ng dng mail client cn import các th vin javax .mail, javax .mail. interner, javax .mail. activation.