¸ÞÀÏÀÇ ¼ö½Å, Á¤È®È÷ ¸»ÇÏÀÚ¸é, À¥»óÀÇ ¸ÞÀϼ¹ö·ÎºÎÅÍ ¸ÞÀÏÀ» Àоî¿À´Â µ¥¿¡´Â Store Ŭ·¡½º¿Í Folder Ŭ·¡½º°¡ °ü¿©ÇÕ´Ï´Ù. ÀÌ µÎ °¡Áö Ŭ·¡½º´Â °¢°¢ ¸ÞÀÏ º¸°üÀå¼Ò¿Í ±× Àå¼Ò ¾ÈÀÇ Æú´õ¸¦ ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù. ¸ÞÀÏÀü´ÞÀÇ ±¸Á¶¸¦ ±× Ŭ·¡½ºµé°ú ¿¬°ü½ÃÄÑ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

±×¸² 7-6 JavaMail Àü´Þ ¸ÞÄ¿´ÏÁò
±×¸²À» º¸½Ã¸é, À§¿¡¼ ¸ÞÀÏÀ» ¼Û½ÅÇÒ ¶§ ´Ù·ç¾ú´ø Message¿Í Transport Ŭ·¡½º ±×¸®°í ¾ÕÀ¸·Î ¸ÞÀÏ ¼ö½Å°ú ÇÔ²² »ìÆìº¼ Store¿Í Folder Ŭ·¡½º°¡ À¯±âÀûÀ¸·Î ¿¬°üµÇ¾î ¸ÞÀÏ¿¡ °ü¿©Çϰí ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±×·³ ¸ÞÀϼö½Å¿¡ °ü°èµÇ´Â ÁÖ¿ä Ŭ·¡½ºµé¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù.
javax.mail.Store Ŭ·¡½º
Store Ŭ·¡½º´Â ¸Þ½ÃÁö¸¦ ÀúÀåÇÏ°í °¡Á®¿À±â À§ÇØ Message Store·ÎÀÇ Á¢±Ù°ú ProtocolÀ» ¸ðµâÈÇϴ Ŭ·¡½ºÀÔ´Ï´Ù. Áï ¿©·¯ºÐÀÌ °¡Áø ¸ÞÀÏ ¼¹ö¿¡ Á¢±ÙÇÏ¿© ¸Þ½ÃÁö¿¡ Á¢±ÙÇϴ Ŭ·¡½º¶ó°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.
n public abstract class Store extends Service
javax.mail.Folder Ŭ·¡½º
FolderŬ·¡½º´Â ¸ÞÀϸ޽ÃÁö¸¦ Æ÷ÇÔÇÏ´Â Æú´õ¸¦ ³ªÅ¸³»´Â Ŭ·¡½º·Î »ç¿ëÀÚÀÇ ÁÖ Æú´õ´Â ¹ÞÀº ÆíÁöÇÔ Áï Inbox°¡ µË´Ï´Ù.
n public abstract class Folder extends java.lang.Object
´ÙÀ½Àº ÀÎÅÍ³Ý ¸ÞÀÏ Provider¸¦ ÅëÇØ¼ ¸ÞÀÏ InboxÀÇ ³»¿ëÀ» È®ÀÎÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. ÇѰ¡Áö ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº ÷ºÎ ÆÄÀÏ µî Mulitpart·Î ±¸ÇöÇÑ ¸ÞÀÏÀ» ÀÐÀ¸·Á¸é, ±×¿¡ µû¶ó MultiPart ÇüÀ¸·Î ´Ù¿îij½ºÆÃ ÇÏ¿© µ¥ÀÌÅ͸¦ »ç¿ëÇØ¾ß µÈ´Ù´Â °ÍÀÔ´Ï´Ù.
|
readmail.html |
¸ÞÀϼ¹ö·ÎÀÇ ·Î±×ÀÎÀ» À§ÇÑ Æû | |
|
| ||
|
ReadMail.java |
¸ÞÀϼ¹öÀÇ Inbox·ÎºÎÅÍ ¸ÞÀÏÀ» Àоî¿À´Â ¿¹Á¦ | |
|
| ||
|
C:\jakarta\webapps\MySample\WEB-INF\classes\mail>javac ReadMail.java
| ||
¼Ò½º¸¦ ºÐ¼®ÇØ º¸°Ú½À´Ï´Ù. ¸ÕÀú Property¸¦ ±âÃÊ·Î SessionÀ» »ý¼ºÇÕ´Ï´Ù.
n Session session = Session.getDefaultInstance(props, null);
E-Mall protocolÀ» À§ÇÑ Store¸¦ ¾ò½À´Ï´Ù. POP3, ¶Ç´Â IMAPÀÌ °¡´ÉÇÕ´Ï´Ù.
n Store store = session.getStore("pop3");
Email Host·Î ¿¬°áÇÕ´Ï´Ù.
n store.connect(host, username, password);
Àб⠿øÇÏ´Â Folder¸¦ °¡Á®¿Í Folder¸¦ ReadOnly ¼Ó¼ºÀ¸·Î ¿±´Ï´Ù.
n Folder folder = store.getFolder("INBOX");
n folder.open(Folder.READ_ONLY);
Æú´õÀÇ ¸Þ¼¼Áö ³»¿ëÀ» ¸ðµÎ ¹è¿·Î ¹Þ½À´Ï´Ù.
n Message message[] = folder.getMessages();
for¹®À» µ¹¸é¼ ¸Þ½ÃÁöÀÇ º¸³½ »ç¶÷°ú, Á¦¸ñÀ» Ãâ·ÂÇÕ´Ï´Ù.
n for (int i=0, n=message.length; i<n; i++) {
n out.print(HangulEncoder.toKSC5601("from: " + message[i].getFrom()[0]
n + " , subject: " + message[i].getSubject())+"<br><br>");
¸Þ½ÃÁö ºÎºÐÀÌ multipart·Î ÀÌ·ç¾îÁ³´ÂÁö °Ë»çÇÏ¿© ±×·¸´Ù¸é MultiPartÇüÀ¸·Î ´Ù¿îij½ºÆÃ ÇÕ´Ï´Ù.
n if(message[i].isMimeType("multipart/*")){
n Multipart multipart = (Multipart)message[i].getContent();
multipartÀÇ MIMEŸÀÔÀ» °Ë»çÇÏ¿© ÅØ½ºÆ®°Å³ª HTMLÀÌ¸é ±× ³»¿ëÀ» ±×´ë·Î »Ñ·ÁÁÝ´Ï´Ù.
n if(p.isMimeType("text/plain") || p.isMimeType("text/html")){
n out.print(p.getContent());
n }
multipartÀÇ MIMEŸÀÔÀÌ text³ª HTMLÀÌ ¾Æ´Ò °æ¿ì Áï, ÆÄÀÏÀÏ °æ¿ì ´ÙÀ½°ú °°ÀÌ ÆÄÆ®·ÎºÎÅÍ InputStreamÀ» ¾ò¾î ´Ù½Ã FileOutputStreamÀ¸·Î ÆÄÀÏÀ» ÀúÀåÇØ ³õ¾Ò½À´Ï´Ù. ±×¸®°í ±× ÆÄÀÏÀÇ ´Ù¿î·Îµå°¡ °¡´ÉÇϵµ·Ï ¸µÅ©¸¦ °É¾î ÁÖ¾ú½À´Ï´Ù.
n String filename = p.getFileName();
n if(filename != null){
n InputStream in = p.getInputStream();
n FileOutputStream fout = new FileOutputStream(new File(filename));
n int c = in.read();
n while(c!=-1){
n fout.write(c);
n c=in.read();
n }
n out.print(" file :<a href = D:/jakarta/bin/"+ filename + ">"+filename+"</a>");
n fout.close();
n in.close();
n }
½ÇÁ¦ÀÇ À̸ÞÀÏ ¼ö½Å ÇÁ·Î±×·¥À» ¸¸µç´Ù¸é À§¿Í °°ÀÌ ÆÄÀÏÀ» ´Ù¿î·Îµå ÇÏ´Â ¹æ¹ýÀº Á¤¼®ÀÌ ¾Æ´ÒÁöµµ ¸ð¸£Áö¸¸, ÆÄÀÏÀÌ ´Ù¿î·ÎµåµÇ´Â ¹æ¹ýÀ» º¸´Ù Á÷°üÀûÀ¸·Î º¸À̱â À§Çؼ ÀÌ·± ½ÄÀ» ÅÃÇØ º¸¾Ò½À´Ï´Ù.
´ÙÀ½À¸·Î ¸Þ½ÃÁö°¡ MultiPartÇüÀÌ ¾Æ´Ò °æ¿ì ±×³É ³»¿ëÀ» »Ñ·ÁÁÝ´Ï´Ù.
n out.print(message[i].getContent() + "<hr>");
¸¶Áö¸·À¸·Î ¿¾ú´ø ConnectionÀ» ´Ý¾ÆÁÝ´Ï´Ù.
n folder.close(false);
n store.close();
ÀÌ·¸°Ô ¸ÞÀÏÀ» ¼ö½ÅÇÏ´Â ÇÁ·Î±×·¥À» ¿¬½ÀÇØ º¸¾Ò½À´Ï´Ù. ºñ·Ï, À¥»ó¿¡¼ º¸ÀÌ´Â ¸ÞÀϼºñ½º¿Í °°ÀÌ Æú´õ°¡ ±ú²ýÇÏ°Ô ³ª´µÁöµµ ¾Ê°í, ÇÑ±Û Ã³¸® µîÀÇ ¹®Á¦¸¦ ¿Ïº®ÇÏ°Ô ÇØ°áÇØ ³õÁö´Â ¾Ê¾ÒÁö¸¸, ÆÄÀÏ ´Ù¿î·Îµå¸¦ Æ÷ÇÔÇÏ´Â ¸ÞÀÏ ¼ö½ÅÀÇ ±â´ÉÀº ¸ðµÎ ¼³¸íµÇ¾î ÀÖÀ¸´Ï ÁÖÀÇ ±í°Ô »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù.
|
Store Ŭ·¡½º ÁÖ¿ä ¸Þ¼µå |
|
public abstract Folder getFolder(java.lang.String name) : ÁÖ¾îÁø À̸§ÀÇ Æú´õ°´Ã¼¸¦ ¸®ÅÏÇÑ´Ù. public void addStoreListener(StoreListener l) : StoreEvent¸¦ À§ÇÑ ¸®½º³Ê¸¦ ´Þ¾ÆÁØ´Ù. |
|
Folder Ŭ·¡½º ÁÖ¿ä ¸Þ¼µå |
|
public abstract void open( mode) : ÁÖ¾îÁø ¸ðµå·Î Æú´õ¸¦ ¿¬´Ù. Folder.READ_ONLY Folder.READ_WRITE°¡ µÉ ¼ö ÀÖ´Ù. |
| jabookÀúÀÚ¸íÇÔ |
|
Á¦¸ñ:¼Ò¼³°°ÀºJSP2ºÎ ÀúÀÚ:ÃÖ¿µ°ü |