Más contenido relacionado 專題製作1. ஜξࣽמεᏢ
ၗૻπำس
ᚒ ᇙ բ ൔ
ႝηແҹԏวس
E-MAIL CLIENT
Ꮲ ғǺ ܰ ᔄ 4940E040
ഋ ௴ Ѷ 4940E005
ࡰ Ꮴ Դ ৣ ǺЦ Ў ࡏ Դ ৣ
ύ҇୯ 98 ԃ 5 Д
2. ႝηແҹԏว೬ ᡏ
E-MAIL CLIENT
Ꮲ ғǺ ܰ ᔄ Student: Yi-Rong _Du
Ꮲ ғǺഋ ௴ Ѷ Student: Chi-hung _Chen
ࡰ Ꮴ Դ ৣ ǺЦ Ў ࡏ Advisor: Wen-Yen_Wang
ஜξࣽמεᏢ
ၗ ૻ π ำ س
ᚒ ൔ
A Report
Submitted to Department of Information Engineering
Kun Shan University
in Partial Fulfillment of the Requirements
for the Degree of Bachelor
in
Information Engineering
June 2009
Tainan, Taiwan, Republic of China
ύ ҇ ୯ 97 ԃ 5 Д
4. ii
ႝηແҹԏว೬ ᡏ
ᏢғᏢғᏢғᏢғǺǺǺǺ ܰ ᔄ ܰ ᔄ ܰ ᔄ ܰ ᔄ ǵǵǵǵഋ ௴ Ѷഋ ௴ Ѷഋ ௴ Ѷഋ ௴ Ѷ ࡰ Ꮴ Դ ৣࡰ Ꮴ Դ ৣࡰ Ꮴ Դ ৣࡰ Ꮴ Դ ৣ ǺǺǺǺЦ Ў ࡏЦ Ў ࡏЦ Ў ࡏЦ Ў ࡏ
ஜ ξ ࣽ מ ε Ꮲၗ ૻ π ำ س
ᄔᄔᄔᄔ ाााा
ҁᚒЬाࢂճҔำԄᇟق Java ܌ ග ٮ ޑ Application Programming
Interface (API)ȉJavaMail ࣁ Ьाࢎ ᄬ ǴԶ Չ ჴ Զ܌ ౢ ғ р ٰ ޑ ᆒ ᙁ Ъ Б
ߡ ٬ Ҕޑႝ η ແҹ ԏว ೬ ᡏǶ
ႝ η ແҹ ჹ Ϟ ޗ ς ࢂΓ ᆶΓ ϐ ໔ ό ё ܈લ ޑ ঁ ೯ ૻ ౢ ࠔ Ǵ ঁ Γ
ѳ֡ Ϻ Կ Ͽ ԏډӳ ൳ Μ ࠾ ႝ η ແҹ ǴԶε ӭኧ Γ ᒧ ٬ Ҕᘤ ំ Ꮤ ໒ ᆛ ।
ٰ ᎙ ᠐ ႝ η ແҹ Ǵՠ ӧ ໒ ௴ ᆛ । ޑӕ ਔ Ψ Ѹ य़ ჹ Ε αᆛ ઠ ޑቶ ຎ ื Ϸ ੰ ࢥ ᆶ
Е ଭ ำԄ࠶ޑ ુ Ǵу ԛ ฦ Ε ሡ ख़ ፄ ᒡ Ε ဦ ஏ ዸǴᏤ ठ ঁ ᎙ ᠐ ޑਏ फ़
եǶ
Զႝ η ແҹ ԏว ೬ ᡏޑр Ǵׯ ᡂ Α ӭ٬ Ҕޣ ޑಞ ᄍ Ǵѝ ाӧ ೬ ᡏ ٣
Ӄ Ꮻ ԏߞ ߞ ጃޑՏ ֟ ᆶ ဦ ஏ ዸ൩ ё а ᇸ ԏว ႝ η ແҹ Ǵፓ Ծ ρ ߞ ҹ ޑϩ
ᜪ ኳ ԄǴᆶϷ ਔ ޑཥ ແҹ ೯ ޕ ǴԶӧ ೬ ᡏ္ Ψ Ԗ ӭၟ ႝ η ແҹ ৲ ৲ ࣬ ᜢ ޑф
ૈ ٰ ቚ у ٬ Ҕޣ ޑπ բ ਏ Ƕ
Զҁᚒᙖ җ JavaMail ำԄᇟقჹ ႝ η ແҹ ԏว ߡޑ ճ܄ Ǵ٠ у Ε Б ߡ ٬
Ҕޣ ӧ ԏว ႝ η ແҹ ਔ ё ᔈ Ҕޑπ ڀ Ǵ ी р ᏹ բ ᙁ ዅ Ъ ِ ೲ Б ߡ ᎙ ᠐ ޑႝ
η ແҹ ԏว ೬ ᡏǶ
ᜢ ᗖ ӷ : E-mail ClientǵJavaǵJavaMail
5. iii
ᇞ ᖴ
ག ᖴ ࡰ Ꮴ Դ ৣ -Ц Ў ࡏ Դ ৣ Ǵჹ ܭ ҁᚒᇙ բ ޑҔЈ Ǵό ѝ ග ٮ ᚒޑၗ
ૻ Б ӛ Ǵ׳ ೀ ೀ ݙ ཀ ॺך ޑᚒ ࡋ Ǵ ॺך ၶ ډ ᓍ ਔ Ǵᕴ ࢂ ਔ ૈ ๏ ϒ
ᝊ ޑཀ ـ Ǵᡣ ॺך ڙ ؼ ӭǴ׳ ाག ᖴ ஜ ξ ࣽ מ ε Ꮲ ɡၗ ૻ π ำس ޑε ৎ ߏ -
ቼ ౺ ЬҺ ග ٮ سޑ ֹ ๓ ޑ ഢ Ϸ к ى ޑၗ ྍ ω ૈ ᡣ ҁᚒӵ ය ֹ ԋ Ƕ
6. iv
Ҟ ᒵ
ਜ ........................................................................................................................ i
ᄔ ा .......................................................................................................................... ii
ᇞ ᖴ ..........................................................................................................................iii
Ҟ ᒵ .........................................................................................................................iv
კӈ ..........................................................................................................................v
ಃ ക ᆣ ፕ .......................................................................................................1
1.1 ࣴ ز ᐒ ᆶҞ ޑ....................................................................................1
1.2 س ཷ ॊ ...............................................................................................1
1.3 ϣ ཷ ॊ ...............................................................................................1
ಃ Β ക ࣬ ᜢ ϟ ಏ ................................................................................................2
2.1 Java........................................................................................................2
2.2 JavaMail API..........................................................................................4
ಃ Ο ക س ࢎ ᄬ ................................................................................................5
3.1 س ࢎ ᄬ ...............................................................................................5
3 .2 SMTP CLIENT......................................................................................6
3 .3 POP3 CLIENT .......................................................................................6
ಃ Ѥ ക ೬ ᡏф ૈ ࢎ ᄬ ........................................................................................7
4.1 ሡ ϩ ...............................................................................................7
4.2 ी ϩ ...............................................................................................9
4.3 ෳ ၂ ी Ⴤ .............................................................................................10
ಃ ϖ ക ೬ ᡏࢬ ำკ..........................................................................................10
5.1 ࢬ ำკ .................................................................................................10
5.2 ࢬ ำკᇥ ܴ ..........................................................................................11
5.3 ी ၸำᆶୢ ᚒ..................................................................................12
5.4 ख़ ाำԄዸ..........................................................................................20
ಃ Ϥ ക ೬ ᡏჴ ..............................................................................................3 1
6.1 Client ᆄ ۓ .......................................................................................3 1
6.2 ߞ ф ૈ .............................................................................................3 2
6.3 ԏߞ ф ૈ .............................................................................................3 3
6.4 த ҔЬԑф ૈ ......................................................................................3 4
6.5 ߕ у ᔞ ਢ ф ૈ ......................................................................................3 6
6.6 ᙁ ܰ ी ᆉ ᐒ ф ૈ ..................................................................................3 8
6.7 Չ ٣ ф ૈ ..........................................................................................3 8
ಃ Ύ ക ่ ፕ .....................................................................................................3 9
ୖ Ե Ў .................................................................................................................3 9
7. v
კ ӈ
კ 1 JavaMail API ϐ ่ ᄬ კ .....................................................................................4
კ 2 E-mail ᒡ চ ................................................................................................6
კ 3 ۓ ᕉ ნ ᡂ ኧ ...................................................................................................8
კ 4 ཥ ቚ CLASSPATH س ᡂ ኧ ᆶځ ᡂ ኧ ॶ .........................................................8
კ 5 SMTP Client ϟ य़ ..............................................................................................9
კ 6 POP3 Client ϟ य़ ..............................................................................................9
კ 7 SMTP Profile .....................................................................................................9
კ 8 POP3 Profile ......................................................................................................9
კ 9 ೬ ᡏࢬ ำკ ....................................................................................................10
კ 10 ಃ ހ SMTP Client Ьϟ य़ ........................................................................12
კ 11 ಃ ހ SMTP Client ϐ ࣬ ᜢ ۓ .................................................................13
კ 12 SMTP Client ᒡ ၸำϐ ၁ ಒ ၗ ...............................................................13
კ 13 ಃ ހ POP3 Client Ьϟ य़ .........................................................................14
კ 14 ಃ ހ POP3 Client ϐ ࣬ ᜢ ۓ ..................................................................14
კ 15 ಃ Β ހ Email Client ϐ ࣬ ᜢ ۓ .................................................................15
კ 16 ಃ Β ހ Email Client ϐ Ьाϟ य़ .................................................................15
კ 17 ಃ Ο ހ Email Client ϐ Ьाϟ य़ .................................................................16
კ 18 ಃ Ο ހ Email Client ϐ ԏҹ պ .....................................................................16
კ 19 ಃ Ο ހ Email Client ϐ ࣬ ᜢ ۓ .................................................................17
კ 20 ಃ Ѥ ހ Email Client ϐ ߞ պ .....................................................................17
კ 21 ಃ Ѥ ހ Email Client ϐ ଌ ԋ ф ග Ң ..........................................................18
კ 22 ಃ Ѥ ހ Email Client ϐ ԏҹ պ .....................................................................18
კ 23 ಃ Ѥ ހ Email Client ϐ ԏҹ ֹ ԋ ග Ң ..........................................................18
კ 24 ಃ ϖ ހ Email Client ϐ ཥ ቚ ߕ у ᔞ ਢ ф ૈ ..................................................19
კ 25 ಃ ϖ ހ Email Client ϐ ໒ ௴ ߕ у ᔞ ਢ ຎ ื ..................................................19
კ 26 ۓ ᒧ ......................................................................................................31
კ 27 Client ᆄ ۓ Ҟ .........................................................................................32
კ 28 ኗ ቪ ߞ ҹ ϣ ...............................................................................................32
კ 29 ແҹ ଌ р ග Ң (֖ ග ᒬ ॣ )..........................................................................33
კ 30 ᔠ ཥ ߞޑ ҹ ...............................................................................................33
კ 31 ແҹ ௗ ԏග Ң (֖ ග ᒬ ॣ )..........................................................................34
კ 32 ແҹ ᘤ ំ .......................................................................................................34
კ 33 த ҔЬԑф ૈ ϐ ࡪ ່ ....................................................................................35
კ 34 த ҔЬԑᒧ Ϸ у Ε ࡪ ່ ............................................................................35
კ 35 ߕ у ᔞ ਢ ϐ ࡪ ່ ............................................................................................36
8. vi
კ 36 ߕ у ᔞ ਢ ϐ ᔞ ਢ ໒ ௴ ᒧ ............................................................................36
კ 37 ᒧ ዴ ۓ ϐ ᒧ ............................................................................................37
კ 38 ߕ у ᔞ ਢ ϐ ౽ ନ ࡪ ່ ....................................................................................37
კ 39 ߕ у ᔞ ਢ ϐ ౽ ନ ග Ң ....................................................................................37
კ 40 ᙁ ܰ ी ᆉ ᐒ ϐ ф ૈ ϟ य़ ................................................................................38
კ 41 Չ ٣ ϐ ф ૈ ϟ य़ ........................................................................................38
9. 1
ಃ ക ʳ ᆣ ፕ
1 . 1 ࣴزᐒᆶҞޑ
ႝ η ແҹ ӧ Ϟ ޗ ࢂঁ ό ё ܈લ ޑπ ڀ Ǵό ᆅ ࢂΓ ᆶΓ ྎޑ ೯ Ҭ ࢬ ࢂ܈
ৎ ቶ ǵϦ љ Չ ࡹ ࠹ Ѳ Ӣ ࣁ ႝ η ແҹ ፍ ғ Զᡂ ޑค ۳ ό ճǴ ঁ Γ ൳ Я Ԗ
ঁ а ޑႝ η ߞ ጃǴ Ϻ Կ Ͽ ԏډ൳ Μ ࠾ ႝ η ແҹ Ǵё ـ ႝ η ແҹ ӧ Γ
ғ ࢲ ޑख़ ा܄ Ǵ܌ а ҂ ٰ ԏว ႝ η ແҹ ೬ ᡏஒ ԋ Ѡ ঁ Γ ႝ တ Ѹ ഢ ޑᔈ Ҕ೬
ᡏǴٰ ૈ ቚ у ແҹ ᘤ ំ ޑਏ ᆶߡ ճ܄ Ƕ
1 . 2 س ཷ ॊ
ҁᚒЬाբ ࣁ SMTP ClientکPOP3 Clientٿ ҽ ࣬ ่ ӝ ӧ ӕ ঁ ೬ ᡏ
ٰ ჴ ԏว ႝ η ແҹ բ Ǵฅ ࡕ ڗ Google mailٰ ࣁE-mail ClientޑMail
serverǴ ٬ Ҕޣ ߞ ਔ җSMTP Clientٰ ଌ ډMail serverǴԶԏߞ ޣ
ၸPOP3 ClientډMail serverٰ ௗ ԏǶ
1 . 3 ϣ ཷ ॊ
ҁᚒ٬ ҔำԄᇟقJava္ ޑJavaMailس ٰ ࣁ ೬ ᡏޑЬࢎ ᄬ ǴԶф ૈ ᆶ
ϟ य़ ϯ ࢂҔJava܌ ኗ ቪ Ǵ೬ ᡏϣ ନ Α ୷ ҁޑԏว ߞ ф ૈ Ѧ Ǵᗋ у Ε Α த ҔЬ
ԑǵᙁ ܰ ी ᆉ ᐒ Ϸ ԃ Չ ٣ Ǿф ૈ Ƕ
10. 2
ಃ Β ക ʳ ࣬ ᜢ ϟ ಏ
2 . 1 Java
ҁᚒ܌ ٬ ҔޑJavaำԄᇟقϣ ࡌ Α Ӽ ӄ ф ૈ ǵၠ ѳᆵ ૈ Κ ǵග ٮ ܰ ܭ
Չ ୯ ሞ ϯ բ ޑπ ڀ ǴԶЪ ׳ ख़ ाࢂޑǴJava ុ ᘉ к ځ ᇟقф ૈ ځک ำԄ Ǵ
ள а ೀ ᇟقύ ፏ ӭ҂ ૈ ೀ ӳ ޑୢ ᚒǴႽ ࢂӭᆣ (Multithreading)ǵၗ
Ӹ ڗ ǵᆛ ๎ ำԄ໒ ว ǵϩ թ Ԅी ᆉ [ I ]Ƕ
SUNޑJavaᇟقқ Ҝ ਜ ύ ᇥ ܴ Javaᇟޑق ᗺ :
1. ᙁ ൂ (Simple)Ǻ ܰ ኗ ቪ ำԄǴό ሡ ाߏ ਔ ໔ ૽ޑ ግ ǴԶૈ ᅈ ى
ж ޑሡ Ƕ
2. ނ ҹ Ꮴ ӛ ޑ(Object-Oriented)Ǻނ ҹ Ꮴ ޑ ी ࢂ ᅿ ख़ Ј ӧ ၗ ک
ϟ य़ מޑ ѯ ǹന ߈ ޑᒿ ක ջ Ҕ(Plug and Play)ҭ ࢂނ ҹ Ꮴ ӛ ी ޑ
ख़ ᗺ Ƕ
3. ϩ ණ Ԅޑ(Distributed)ǺJavaԖ ঁ ࡐ ຼ ӄ ޑำԄ ǴЪ ࡐ ܰ Ӧ
ᆶ HTTP ک FTP TCP/IP ೯ ૻ ڐ ۓ ࣬ ଛ ӝ Ƕ Java ᔈ Ҕ ำ Ԅ
(Applications)ૈ ӧ ᆛ ၡ ໒ ௴ Ϸ ೱ ่ ٬ Ҕނ ҹ Ǵ൩ ӵ ӕ ၸURL
ೱ ่ ٬ Ҕ ঁ ୱ ᔞ ਢ س (Local File System)Ƕ
4. ம ܄ ޑ (Robust)Ǻҗ Java ܌ ኗ ቪ р ޑำԄૈ ӧ ӭᅿ ݩ Π Չ
Զڀ Ԗ ځ ᛙ ۓ ܄ JavaᆶC/C++ന ε ό ӕ ᗺ ࢂJavaԖ ঁ ࡰ Ꮤ ኳ ࠠ
(Pointer Model) ٰ ௨ ନ Ꮻ ᡏ ᇂ ቪ (Overwriting Memory)کၗ
྄ ཞ (Corrupting Data)ޑё ૈ ܄ [ I ]Ƕ
5. Ӽ ӄ ܄ ޑ(Secure)ǺJavaᏱ Ԗ ኧ ঁ ໘ ቫ ޑϕ ᙹ (Interlocking)ߥ ៈ
ࡼǴૈ Ԗ ਏ Ӧ ٛ З ੰ ࢥ ߟޑ Ε کઇ ᚯ Չ ࣁ ޑว ғ Ƕ
11. 3
6. ࢎ ᄬ ύ ҥ ܄ ޑ(Architecture Neutral)ǺJavaޑጓ Ꮤ ౢ ғ ᅿ ่ ᄬ ύ
ҥ ނ ҹ ޑᔞ ਢ Ԅ(Object File Format)ǹ೭ ٬ ள ጓ ዸள а ӧ ࡐ ӭ
ᅿ ೀ Ꮤ ύ Չ Ƕ
7. ё ឫ ܄ ޑ(Portable)ǺำԄ ឦ ܭ س ޑ ҽ ǴѬ ۓ က Α ٤
ё ឫ ޑϟ य़ ǴJavaҁي ڀ ഢ Ԗ ࡐ ӳ ޑё ឫ ܄ Ƕ
8. ှ ޑ(Interpreted)ǺJavaှ Ꮤ ૈ ޔ ௗ Ӧ ӧ Һ Ֆ ᐒ Ꮤ Չ Java
Տ ϡ ዸ(Bytecodes)ǴԜ ӧ Չ ำԄೱ ่ ਔ Ǵਔ ໔ ޑ ࣪ Ǵ೭ ჹ ܭ ᕭ
อ ำԄޑ໒ ว ၸำǴԖ ವ ε ޑշ Ƕ
9. ଯ ਏ ૈ ޑ (High Performance)ǺJavaՏ ϡ ዸِ ೲ Ӧ ૈ ᙯ ඤ ԋ ᐒ ఓ
ዸ(Machine Code)Ƕ
10. ӭ Չ ᆣ ޑ (Multithreaded)ǺJavaᇟڀق Ԗ ӭख़ ጕ Ս ޑф ૈ Ǵ೭ ჹ
ܭ ϕ ӣ ᔈ ૈ Κ Ϸ ջ ਔ Չ Չ ࣁ ࢂԖ շ ޑǶ
11. ᄊ ޑ (Dynamic)ǺJavaКC܈C++ᇟ׳ق ڀ Ԗ ᄊ ܄ Ǵ׳ ૈ Ӣ ᔈ
ਔ څ ӧ ᡂ ޑᕉ ნ ǴJavaό Ӣ ำԄ ׳ޑ ཥ ǴԶѸ ख़ ཥ ጓ ำԄ
12. 4
2 . 2 JavaMail API
კ 1 JavaMail API ϐ่ ᄬ კ
JavaMailࢂ ঁ Ҕܭ ࡌ ҥ ແҹ س ኳ ࠠ ܜޑ ຝ APIǴAPIග ٮ Α ঁ ᐱ ҥ ޑ
ѳѠ ᆶڐ ۓ ࢎ ᄬ Ǵё а Ҕٰ ࡌ ҥ ແҹ ᆶૻ ৲ ሀ ᔈ ҔำԄǶॺך ё ҔѬ ٰ ࡌ ҥ ӵ
EudoraǵFoxmailǵMS Outlook Express ޑແҹ ҔЊ ж ำׇ ȐMail User Agent,
ᙁ ᆀ MUAȑǶ Զό ࢂႽ SendMailޣ܈ ځ Ѭ ޑແҹ ᒡ ж ȐMail Transfer AgentǴ
ᙁ ᆀ MTAȑำׇ ٗ ኬ ё а ଌ ǵሀ ଌ ǵᙯ ว ແҹ [ II ]Ƕவ ќ Ѧ ঁ ف ࡋ ٰ ࣮ Ǵך
ॺ ೭ ٤ ႝ η ແҹ ҔЊ В த ҔMUAำׇ ٰ ᠐ ቪ ແҹ ǴԶMUA٩ ᒘ MTAೀ ແҹ
ޑሀ ଌ Ƕ
JavaMailࢂSUNว Ѳ ޑೀ ႝ η ແҹ ޑᔈ Ҕำׇ ௗ α[III]ǴѬ Ⴃ Α ٤ ന
த Ҕޑແҹ ଌ ڐ ޑჴ Б ݤ Ǵ٠ Ъ ග ٮ Α ࡐ ܰ ޑБ ݤ ѐ ፓ ҔѬ ॺ Ƕՠ Ҟ
Ѭ ᗋ ؒ Ԗ JDKх ֖ Ƕ Ӣ Ԝ ሡ ाவ SUN۔ޑ Б ᆛ ઠ Π ၩ ډJavaMailᜪ Ў ҹ х Ƕ
ନ Ԝ ϐ Ѧ ᗋ ሡ ाSUNޑJAF(JavaBeans Activation Framework )Ǵց ߾ JavaMailஒ ό
ૈ ၮՉ Ƕ
13. 5
JavaMailځ ᜢ ᗖ ำԄዸӵ Π Ǻ
javax.mail.Session //ແҹ ೱ ጕ ᆅ
javax.mail.Authenticator //Ӽ ӄ ᇡ
javax.mail.Message //ແҹ ϣ ۓ
javax.mail.intenet.MimeMessage
javax.mail.Part
javax.mail.Multipart
javax.mail.Address //ڗ ள ແҹ Ӧ ֟
javax.mail.internet.InternetAddress
javax.mail.internet.NewsAddress
javax.mail.Store //ڗளᔞਢ֨
javax.mail.URLName
javax.mail.Folder //ڗளߞҹၗ
javax.mail.Transport
ಃ Ο ക ʳ س ࢎ ᄬ
3 . 1 سࢎᄬ
ҁ ᚒ ϐ ᡏ س ࢎ ᄬ ࢂа JavaMailϐAPIբ ࣁѳ Ѡ Ǵӆ ҔJavaำԄ ᇟ ق ϟ
य़ ϯ ǴԶЬ ा Ҕډ ٿޑ ঁ س ࣁǺ
SMTP Client
POP3 Client
ႝ η ແҹวଌ ೬ ᡏ Ь ा җ ߞޣႝ တ җ SMTP Clientวଌ E-mailԿMail
ServerǴԶԏ ߞޣ җ POP3 Clientѐ வ Mail Serverௗ ԏ E-mailǶѝ ा ӝ ೭ ٿ ঁ
س ൩ ё а ޔ ௗ Ҕൂ ೬ ᡏ բ ԏ วႝ η ແҹޑ բ
14. 6
ʳ
კ 2 E-mail ᒡ চ
ˆ ˁ ˅ SMTP CLIENTʳ
SMTPᙁൂ ແҹ ᒡ ڐ ۓက Αሀ ଌ ແҹޑᐒڋ Ƕך ॺ ஒ٬ Ҕ୷ ܭ JavaMail
ޑำׇ ᆶᏢ ਠ ܈ ޣISPޑSMTPܺ ୍ ᆄ Չ ೯ ૻ Ƕ೭ ঁ SMTPܺ ୍ ᆄஒແҹᙯ วډ
ௗ ԏ ޑޣSMTPܺ ୍ ᆄǴޔ Կന ࡕ ௗ ԏ ޣ೯ ၸ POP܈ ޣIMAPڐ ᕇ ளǶ೭ ٠ ό
ሡ ा SMTPܺ ୍ ᆄ٬ ҔЍ ޑແҹᙯ วǴՠ ࢂࠅ ा ݙ ཀ SMTPܺ ୍ ᆄ҅ޑዴ
ȐSMTPܺ ୍ ᆄޑᆶJavaMailϐAPIค ᜢ ȑ Ƕ
ˆ ˁ ˆ POP3 CLIENTʳ
POPޑӄ ᆀ ࢂPost Office ProtocolǴջ ແҹڐ ۓǴҔܭ ႝ η ແҹޑௗ ԏ ǴѬ
٬ ҔTCPޑ110ೱ ௗ ୵ Ƕ ӧத ҔࢂޑಃΟހǴ܌ а ᙁᆀ ࣁPOP3ǶPOP3ϝ ௦ Ҕ
Client/Serverπ բ ኳ Ԅ ǴClient ᆀ ࣁ࠼ Њ ᆄǴ ך ॺ В த ٬ Ҕႝ တ ࢂբ ࣁ࠼
Њ ᆄǴԶServer߾ ࢂPOP3ޑແҹܺ ୍ ᆄǶᖐ ঁ ຝ ٯޑ η ǺServerࢂ ӭ λ ߞጃ
ޑ ӝ Ǵ൩ Ⴝ ך ॺ ܌ ۚ Ր ኴ ܊ ߞޑጃ ่ ᄬ ǴԶ࠼ Њ ᆄ൩ ӳ К ࢂঁ Γ ৾ ᢄ ѐ
ߞጃ ໒ ᙹ ߞڗǴኬ ޑၰ [IV]Ƕ
15. 7
POP3ک य़ ޑSMTPڐ ኬ Ǵځჴ Ψ ࢂঁ ࠼ Њ ᆄᆶܺ ୍ Ꮤ ޑჹ၉ ၸ
ำǴך ॺ ᗺ ᔐ Αႝ η ແҹ೬ ᡏ ύޑௗ ԏ ࡪ ່ ࡕǴႝ η ແҹ೬ ᡏ २ Ӄ ٬ ҔDNS
ڐ ჹPOPܺ ୍ ᆄ Չ ှ IPӦ ֟ ǴIPӦ ֟ ှ р ٰࡕǴແҹำׇ ߡ໒ ۈ ٬
ҔTCPڐ ೱ ௗ ແҹܺ ୍ ᆄޑ110ೱ ௗ ୵ ǴӢ ࣁPOPܺ ୍ ᆄࢂК ၨ Ԇ ޑǴ܌ а ӧ
೭ ঁ ၸ ำύך ॺ ࣬ ჹा К ၨ ߏ ޑਔ໔ Ƕ
ແҹำׇ ԋ фӦ ೱ POPܺ ୍ ᆄࡕǴ२ Ӄ ٬ ҔUSERڮ з ஒߞጃ ޑ ဦ
๏ POPܺ ୍ ᆄǴฅ ࡕӆ ٬ ҔPASSڮ з ஒߞጃ ޑ ဦ ๏ ܺ ୍ ᆄǶֹ ԋ ೭ ᇡ
ၸ ำࡕǴແҹำׇ ٬ ҔSTATڮ з ፎ ܺ ୍ ᆄ߇ ӣ ߞጃ ޑ ी ၗ ǴК ӵ ແҹ
ᕴ ኧ کແҹε λ Ǵฅ ࡕLISTڮ з ߡ ӈ р ܺ ୍ ᆄ္ ແҹኧ ໆ Ƕௗ Πٰແҹำׇ
൩ ٬ ҔRETRڮ з ௗ ԏ ແҹǴௗ ԏ ࠾ ߞࡕߡ٬ ҔDELEڮ з ஒແҹܺ ୍ ᆄύޑ
ແҹࣁմ ନރ ᄊ Ƕ٬ ҔQUITڮ з ਔǴແҹܺ ୍ ᆄߡ ஒࣁմ ନރ ᄊ
ޑແҹ๏ մ ନΑǶʳ
ಃ Ѥ ക ʳ ೬ ᡏ ф ૈ ࢎ ᄬ
4 . 1 ሡ ϩ
२ Ӄ ሡ ा ঁ ё ϩ ٦ SMTPکPOP3ڐ ޑۓMail Serverٰ Չ ႝ η ແҹޑԏ
วǴ܌ а ҁ ᚒ Ь ा ࢂа GoogleޑGmailߞጃ Mail ServerǴӧෳ ၂ Ӄ ډ
GAMIL໒ ௴ ϩ ٦ POP3ޑфૈǶ
Զᕉ ნ Б य़ ନΑCLIENTᆄҁ ي ा Ԗ Javaޑᕉ ნ Πᗋ ሡ ќ Ѧ Πၩ JavaMail
v1.41 ǵ JAF(JavaBeans Activation Framework)v1.4.1 ǵ JMF(Java Media
Framework)v2.2.1eǶ
ځӼ း ᡯ ӵ Π:
1. ஒ JavaMail ǵ JAF ှ ᓸ ᕭ ϐ ࡕ ٠ ஒ mail.jar ǵ activation.jar ǵ
customizer.jarǵjmf.jarǵmediaplayer.jarǵmultiplayer.jarǵፄ ᇙ ډ
ȘC:ProgramFilesJavajdk1.6.0jrelibextș
16. 8
ຏǺȘC:Program FilesJavașࣁҁ ჴ ϐJavaӼ း ၡ ৩ Ǵހځҁ
ࣁ1.6.0Ƕፎ ٩ ྣ Ծ ρ ޑၡ ৩ ѐ բ অ ҅Ǵѝ ा ܫ ډ ύޑȘjrelibextș
ջ ё Ƕ
2. ӧ ᕉ ნ ᡂ ኧ ޑ س ᡂ ኧ Ș Path ș ύ ቚ у а Π ၡ ৩
ȘC:ProgramFilesJavajdk1.6.0jrelibș
კ 3 ۓ ᕉ ნ ᡂ ኧ
ˆ ˁ ӧᕉ ნ ᡂ ኧ سޑ ᡂ ኧ ཥ ቚ ঁ س ᡂ ኧ ࣁȘCLASSPATHș٠ ஒ
mail.jarǵactivation.jarǵcustomizer.jarǵjmf.jarǵmediaplayer.jarǵ
multiplayer.jarӄ ޑᔞਢၡ ৩ у Ε ډ Ԝ س ᡂ ኧ ϐᡂ ኧ ॶ ύǶ
Ș ٯ ӵ Ǻ C:ProgramFilesJavajdk1.6.0jrelibextmail.jar; ș
ʳ
კ 4 ཥ ቚ CLASSPATH س ᡂ ኧ ᆶ ځ ᡂ ኧ ॶ
17. 9
4 . 2 ी ϩ
Πკ ϩ ձ ࣁSMTP ClientکPOP3 Client٬ޑ Ҕϟ य़ ǴӃ Αှ ٿ ᅿ س ޑำԄ
ଛ Ǵ٠ Ъ ע ϟ य़ ᆶำԄ ่ ӝ Ǵԋ ࣁё а ӕ ਔԏ ႝ η ແҹޑE-Mail ClientǶ
ʳʳʳʳ
კ 5 SMTP Client ϟय़
ʳʳʳʳ
კ 6 POP3 Client ϟय़
ࣁΑ෧ Ͽ ྠ ᚇ ޑMail Server٬کۓ Ҕޣၗૻ ᒡ Ε Ǵ܌ а Ψ ஒٿ ᅿ س
ޑClientᆄۓ ่ ӝ Ǵٰග ϲ ٬ Ҕޣԏ วႝ η ແҹਔޑਏ Ƕʳʳʳʳ
ʳʳʳʳ
კ 7 SMTP Profile
ʳʳʳʳ
კ 8 POP3 Profile
18. 1 0
4 . 3 ෳ ၂ ी Ⴤ
२ Ӄ ǴӃ ஒSMTP ClientکPOP3 Client٬ޑ Ҕϟ य़ ϷำԄ ӝ Ǵ٠ Ъ ෳ ၂ ࢂ
ց ё ҅த ӕ ਔԏ วႝ η ແҹᆶׯ ๓ Չ ਔޑ ࡑ ਔ໔ Ǵ٠ у Ε Ь ԑ इ ᒵ ǵແҹߕ
у ᔞਢǵी ᆉ ᐒᆶՉ ٣ фૈෳ ၂ ำԄ ࣬ ࡕǴ Չ ࢂց ҅த Ǵа Ϸ ᡏ Չ ೲ
ࡋ ࢂց Ԗ ڙ ቹ ៜ Ƕ
ಃ ϖ ക ʳ ೬ ᡏ ࢬ ำ კ
5 . 1 ࢬ ำ კ
ʳ
კ 9 ೬ ᡏ ࢬ ำ კ
19. 1 1
٬ Ҕޣಃԛ ໒ ௴ ೬ ᡏ ਔǴሡ Ӄ ډ ۓ(1)ѐ ᒡ Ε SMTPᆶPOP3ޑHOSTک
POSTϷSSLڐ ޑۓ ဦ ஏ ዸ Ǵᒡ Ε ֹ ࡕᗺ ᒧ ᓯ Ӹ ǴΠԛ ໒ ௴ ਔǴ൩ ё ό Ѹ ӆ ख़
ፄ ᒡ Ε ΑǶֹۓ ࡕǴё ᒧ ी ᆉ ᐒ(2)ǵԃ Չ ٣ (3)܈ ߞ(4)ᆶԏ ߞ(10)ф
ૈǴ ߞϟ य़ ё а ኗ ቪ ཥ ແҹ(5)٠ у Ε த ҔЬ ԑ (6)ᆶߕ у ᔞਢ(7)Ǵߞҹ ଌ (8)
ࡕǴஒԖ ҹග Ң (9)ޑຎ ื ॣک Ƕԏ ҹ ҽ Ǵᒧ ࡕё ҥ ջ ௗ ڙ ແҹ(11)Ǵແ
ҹௗ ԏ ֹ ԋ Ԗ ԏ ҹග Ң (12)ޑຎ ื ᆶॣ Ǵ٠ Ъ Ԗ ࡪ ࠾ (13)ᆶΠ࠾ (14)
ٰᘤ ំ ԏ ҹǶʳ
5 . 2 ࢬ ำ კ ᇥ ܴ
1. ۓ
٬ۓ Ҕߞޣጃ SMTPϷPOP3ϐHostکPortᆶSSLڐ ޑۓ ဦ ஏ ዸ Ƕ
2. ᙁܰ ी ᆉ ᐒ
Б ߡ٬ Ҕޣी ᆉ ϐπ ڀ Ƕ
3. Չ ٣
ё ᓯ Ӹ ٣ ҹǴВ ය ډ р ග ᒬ ຎ ื Ƕ
4. ߞ
ᒧ ߞϐфૈǶ
5. ኗ ቪ ཥ ແҹ
༤ Ε ԏ ҹΓ ǵЬ ԑ а Ϸߞҹϣ ឯՏ Ƕ
6. த ҔЬ ԑ
ё Ⴃ Ӄ ᓯ Ӹ த ҔޑЬ ԑ Ǵ٠ ӧኗ ቪ ཥ ແҹਔᗺ ᒧ у Ε Ƕ
7. ߕ у ᔞਢ
ё ӧႝ η ແҹύཥ ቚ ౽ ନߕ ҹǶ
8. ଌ ߞҹ
ࡪ Πวଌ ແҹϐࡪ ່ Ƕ
9. ҹග Ң
ଌ ແҹԋ фࡕǴ р ග ᒬ ϐຎ ื ᆶග Ң ᖂ Ƕ
10. ԏ ߞ
20. 1 2
ᒧ ԏ ߞϐфૈǶ
11. ௗ ԏ ແҹ
ࡪ Πௗ ԏ ແҹϐࡪ ່ Ƕ
12. ԏ ҹග Ң
ௗ ԏ ແҹԋ фࡕǴ р ග ᒬ ϐຎ ื ᆶග Ң ᖂ Ƕ
13. ࠾
ᗺ ᒧ ࡕǴё ᘤ ំ ࠾ ແҹǶ
14. Π࠾
ᗺ ᒧ ࡕǴё ᘤ ំ Π࠾ ແҹǶ
5 . 3 ी ၸ ำ ᆶ ୢ ᚒ
1. ಃހ
კ 10 ಃ ހ SMTP Client Ьϟय़
21. 1 3
კ 11 ಃ ހ SMTP Client ϐ࣬ ᜢ ۓ
კ 12 SMTP Client ᒡ ၸ ำ ϐ၁ ಒ ၗ
22. 1 4
კ 13 ಃ ހ POP3 Client Ьϟय़
კ 14 ಃ ހ POP3 Client ϐ࣬ ᜢ ۓ
ୢ ᚒ ᆶБ ݤ :
SMTP ClientԖ ᡉ Ң р ς ଌ ૻ ৲ Ǵՠ ߞҹϝ ҂ ଌ р Ǵ ӧՏ ֟
ۓឯՏ у Ε Տ ֟ ߞጃ ޑSSL ဦ ஏ ዸ Ǵω ૈ ၸ Mail Server ଌ ແҹǶ
POP Clientค ݤ ҅த ௗ ԏ Mail Serverᆄޑႝ η ແҹǴሡ ډ Gmail
ޑႝ η ߞጃ ໒ ௴ POP3ޑфૈǶ
23. 1 5
˅ ˁ ಃΒ ހʳ
კ 15 ಃΒ ހ Email Client ϐ࣬ ᜢ ۓ
კ 16 ಃΒ ހ Email Client ϐЬा ϟय़
ୢ ᚒ ᆶБ ݤ :
SMTP ClientکPOP3 Clientς ё а ٬ Ҕԏ วߞфૈǴՠ ឦ ܭ
ঁ ձ ຎ ื Ǵሡ ஒٿ ঁ ຎ ื ӝ Ǵᡣ ٬ Ҕޣග ϲ ਏ Ƕ
ˆ ˁ ಃΟހʳ
24. 1 6
კ 17 ಃΟ ހ Email Client ϐЬा ϟय़
ʳ
კ 18 ಃΟ ހ Email Client ϐԏ ҹ պ
25. 1 7
კ 19 ಃΟ ހ Email Client ϐ࣬ ᜢ ۓ
ୢ ᚒ ᆶБ ݤ Ǻ
ς ஒSMTP ClientکPOP Client ӝ ӧӕ ঁ ຎ ื Ǵ٠ Ъ ஒۓ
ٿ ঁ ޑՏ ֟ ۓឯΨ ӝ Ǵࠅ วғ ค ݤ ԏ ߞ ߞค ݤ ӕ ਔ Չ ރޑ
ݩǶ
ˇ ˁ ಃѤ ހʳ
კ 20 ಃѤހ Email Client ϐ ߞ պ
26. 1 8
კ 21 ಃѤހ Email Client ϐ ଌ ԋ ф ග Ң
კ 22 ಃѤހ Email Client ϐԏ ҹ պ
კ 23 ಃѤހ Email Client ϐԏ ҹ ֹ ԋ ග Ң
ୢ ᚒ ᆶБ ݤ Ǻ
অ ׯ ࡕSMTP ClientکPOP Clientς ё а ӕ ਔ Չ ԏ ߞᆶ ߞ
ޑᏹ բ Ƕՠ Б ߡ٬ Ҕޣග ϲ ᏹ բ ߕޑ у фૈϼ Ͽ Ƕ
27. 1 9
ˈ ˁ ಃϖ ހ:ʳ
კ 24 ಃϖ ހ Email Client ϐཥ ቚ ߕ у ᔞ ਢ ф ૈ
კ 25 ಃϖ ހ Email Client ϐ໒ ௴ ߕ у ᔞ ਢ ຎ ื
ୢ ᚒ ᆶБ ݤ Ǻ
ς у Ε Α Πߞҹᘤ ំ ࡪ ່ ǵߕ у ᔞਢǵத ҔЬ ԑ ǵी ᆉ ᐒǵ
ԃ Չ ٣ фϷॣ ග Ң фૈǶ
28. 2 0
ˈ ˁ ˇ ख़ ा ำ Ԅ ዸ ʳ
˄ ˁ ߞϐำԄ ዸ ʳ
import java.util.*;
import java.awt.Component;
import java.security.Security;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.swing.JOptionPane;
class Send {
protected static DataSource fds = null;
protected static void sendmail() throws AddressException,
MessagingException {
ʳ Properties props = System.getProperties();
ProfileDialog pd = new ProfileDialog();
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
final String username = pd.jTextFieldUser.getText();
final String password = pd.jPasswordField.getText();
final String smtphost = pd.jTextFieldSmtpHost.getText();
final String smtpport = pd.jTextFieldSmtpPort.getText();
final String recipient = EmailClient.jTextFieldReceiver.getText();
final String From = username + "@gmail.com";
final String sendMsg = EmailClient.jTextArea.getText(); //ϣ Ў ʳ
ʳ
//ڗளឦ ܄ ނ ҹ
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
//ۓӷ ϡ ጓ ዸ ࣁBIG5
props.setProperty("mail.mime.charset", "big5");
29. 2 1
props.setProperty("mail.smtp.host", smtphost);
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", smtpport);
props.setProperty("mail.smtp.socketFactory.port", smtpport);
props.put("mail.smtp.auth", "true");ʳ
ʳ try {
//Session session = Session.getDefaultInstance(props,
Session session = Session.getInstance(props, new Authenticator()
{ʳ
ʳ ʳ ʳ protected PasswordAuthentication
getPasswordAuthentication(){
return new PasswordAuthentication(username,
password);
}
});ʳ
//ࡌ ҥ ཥ ޑແҹ
Message msg = new MimeMessage(session);
//ۓForm
msg.setFrom(new InternetAddress(From));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipient, false));
msg.setSubject(EmailClient.jTextFieldSubject.getText());
msg.setSentDate(new Date());
//ࡌ ҥ ӭ ϣ Multpart ແҹނ ҹ
Multipart multipart = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
30. 2 2
//ࡌ ҥ html Ԅ ϣ
mbp.setContent(sendMsg,"text/html;charset=big5");
//ஒϣ у Ε Multpartແҹނ ҹ
multipart.addBodyPart(mbp);೬ ᡏ ჴ
//ߕ у ᔞਢ
mbp = new MimeBodyPart();
if(fds!=null){
mbp.setDataHandler(new DataHandler(fds));
mbp.setFileName(MimeUtility.encodeText(fds.getName(),
"Big5", "B"));
//ஒߕ у ᔞਢϣ у Ε Multpart ແҹނ ҹ
multipart.addBodyPart(mbp);
}
msg.setContent(multipart);//ჹ Multpart ແҹނ ҹૻۓ ৲
Transport.send(msg);
JOptionPane.showMessageDialog((Component) null,
"ແҹ ଌ ֹ ԋ Ǽ", "ૻ ৲ ",
JOptionPane.WARNING_MESSAGE);
EmailClient.jLabelStatus.setText("ແҹ ଌ ֹ ԋ ");
SoundEffects se = new SoundEffects();
se.SoundEffects();
Clear();//మ ନແҹϣ
fds = null;//మ ନߕ у ᔞਢ
} catch(Exception e) {
JOptionPane.showMessageDialog((Component) null,
"ແҹค ݤ ଌ Ǽ", "ૻ ৲ ",
31. 2 3
JptionPane.WARNING_MESSAGE);
}
}
protected static void Clear() {
EmailClient.jTextFieldReceiver.setText("");
EmailClient.jTextFieldSubject.setText("");
EmailClient.jTextArea.setText("");
}
}
2. ԏ ߞϐำԄ ዸ
import javax.mail.*;
import javax.mail.internet.*;
import javax.swing.JOptionPane;
import java.io.*;
import java.security.*;
import java.awt.Component;
import java.util.Properties;
import java.text.SimpleDateFormat;
public class Receive {
private static String[] mFrom = new String[255];
private static String[] mDate = new String[255];
private static String[] mBody = new String[255];
private static String[] mSubject = new String[255];
private static int total;
protected static Message[] messages;
public static void ReceiveMail() throws Exception {
ProfileDialog pd = new ProfileDialog();
32. 2 4
final String pophost = pd.jTextFieldPopHost.getText();
final String popport = pd.jTextFieldPopPort.getText();
final String username = pd.jTextFieldUser.getText();
final String password = pd.jPasswordField.getText();
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//ۓਔ໔ Ԅ
SimpleDateFormat sd = new SimpleDateFormat
("yyyy-MM-dd HH:mm:ss");
// ڗளឦ ܄ ނ ҹ
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class",
SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", popport);
props.setProperty("mail.pop3.socketFactory.port", popport);
//ࡌ ҥ Session
Session session = Session.getInstance(props, null);
URLName urln = new URLName("pop3", pophost, 995, null,
username, password);
Store store = session.getStore(urln);
Folder inbox = null;
SoundEffects se = new SoundEffects();
try {
store.connect();
33. 2 5
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
messages = inbox.getMessages();
inbox.fetch(messages, profile);
EmailClient.jLabelMailTotal.setText("ແҹጃ ޑແҹኧ Ǻ" +
Receive.messages.length);
for (int i = 0; i < messages.length; i++) {
// ແҹวଌ ޣ
String from = decodeText
(messages[i].getFrom()[0].toString());
InternetAddress ia = new InternetAddress(from);
mFrom[i] = ia.getPersonal() + '('+ ia.getAddress() + ')';
// ແҹ ᚒ
mSubject[i] = messages[i].getSubject();
// ແҹวଌ ਔ໔
mDate[i] = sd.format(messages[i].getSentDate());
//ແҹϣ
if(messages[i].isMimeType("text/*")) {
mBody[i] = messages[i].getContent().toString();
} else {
String disposition;
BodyPart part;
Multipart mp =
(Multipart)messages[i].getContent();
34. 2 6
int mpCount = mp.getCount();
for(int m = 0; m < mpCount; m++) {
part = mp.getBodyPart(m);
disposition = part.getDisposition();
if(disposition != null && disposition.equals
(Part.ATTACHMENT)) {
//saveAttach(part);
} else {
mBody[i] = part.getContent().toString();
}
}
}
}
if(messages.length == 0) {
EmailClient.jLabelMailStatus.setText("Ҟ ແҹǺ"
+ (total) + " / " +messages.length);
JOptionPane.showMessageDialog((Component) null,
"ؒ Ԗ ཥ ແҹǼ", "ૻ ৲ ",
JOptionPane.WARNING_MESSAGE);
se.SoundEffects();
} else {
EmailClient.jLabelMailStatus.setText("Ҟ ແҹǺ"
+ (total+1) + " / " + messages.length);
EmailClient.jTextFieldReceiveSender.ʳsetText(
mFrom[total]);
EmailClient.jTextFieldReceiveSubject.setText(
mSubject[total]);
EmailClient.jTextFieldReceiveDate.setText(
35. 2 7
mDate[total]);
EmailClient.jTextArea1.setText(mBody[total]);
if(messages.length == 1||messages.length == 0) {
EmailClient.jButtonArrowRight.setEnabled(false);
} else {
EmailClient.jButtonArrowRight.setEnabled(true);
}
JOptionPane.showMessageDialog((Component) null,
"ແҹௗ ԏ ֹ ԋ Ǽ", "ૻ ৲ ",
JOptionPane.WARNING_MESSAGE);
EmailClient.jLabelStatus.setText("ແҹௗ ԏ ֹ ԋ ");
se.SoundEffects();
}
} finally {
try { if(inbox!=null) inbox.close(false);ʳif(store!=null)
store.close(); }
catch (Exception e) { e.printStackTrace(); }
}
}
protected static void mailNext() {
try {
if(total < messages.length-1) {
total = total+1;
EmailClient.jTextFieldReceiveSender.setText(
mFrom[total]);
EmailClient.jTextFieldReceiveSubject.setText(
mSubject[total]);
EmailClient.jTextFieldReceiveDate.setText(
36. 2 8
mDate[total]);
EmailClient.jTextArea1.setText(mBody[total]);
EmailClient.jLabelMailStatus.setText("Ҟ ແҹǺ"
+ (total+1) + " / " + messages.length);
if(total == messages.length-1) {EmailClient.
jButtonArrowRight.setEnabled(false); }
if(total != 0) { EmailClient.jButtonArrowLeft.
setEnabled(true); }
} catch (Exception e) {}
}
protected static void mailPreview() {
try {
if(total != 0) {
total = total-1;
EmailClient.jTextFieldReceiveSender.setText(
mFrom[total]);
EmailClient.jTextFieldReceiveSubject.setText(
mSubject[total]);
EmailClient.jTextFieldReceiveDate.setText(
mDate[total]);
EmailClient.jTextArea1.setText(mBody[total]);
EmailClient.jLabelMailStatus.setText("Ҟ ແҹǺ"
+ (total+1) + " / " + messages.length);
}
if(total == 0) { EmailClient.jButtonArrowLeft.ʳsetEnabled(
false); }
if(total != messages.length-1) {
EmailClient.jButtonArrowRight.setEnabled(true); }
37. 2 9
} catch (Exception e) {}
}
protected static String decodeText(String text)
throws UnsupportedEncodingException {
if (text == null)
return null;
if (text.startsWith("=?GB") || text.startsWith("=?gb"))
text = MimeUtility.decodeText(text);
else
text = new String(text.getBytes("ISO8859_1"));
return text;
}
//base64ှ ዸ
private static String base64Decoder(String s) throws Exception {
sun.misc.BASE64Decoder decoder =
new sun.misc.BASE64Decoder();
byte[] b=decoder.decodeBuffer(s);
return(new String(b));
}
private static void saveAttach(BodyPart part) throws Exception {
String temp=part.getFileName();//ளډ ҂ ೀ ߕޑ ҹӜ ӷ
//ѐ ډ headerکfooter
String s = temp.substring(11,temp.indexOf("?=")-1);
//Ў ҹӜ ၸ Αbase64ጓ ዸ ,Πय़ ࢂှ ዸ
String fileName = base64Decoder(s);
System.out.println("Ԗ ߕ ҹ:"+fileName);
InputStream in=part.getInputStream();
FileOutputStream writer=
38. 3 0
new FileOutputStream(new File(fileName));
byte[] content=new byte[255];
int read=0;
while((read=in.read(content))!=-1) {
writer.write(content);
}
writer.close();
in.close();
}
}
39. 3 1
ಃ Ϥ ക ʳ ೬ ᡏ ჴ
6 . 1 Clientᆄ ۓ
೬ ᡏ ಃԛ ௴ ਔǴሡ Ӄ ډ Ѱ ف ޑᔞਢ->ۓ ࡪ ΠǴϐࡕ າ р ۓ
SMTPᆶPOP3ޑHostᆶPortа ϷUser Informationޑຎ ื Ǵҁ ԛ ჴ ࢂа Gmailࣁ
Mail ServerǴֹۓ ࡕǴё ᒧ ᓯ Ӹ а ܈ۓ ࢂܫ కǴ߾ Ծ ᜢ ഈ ຎ ื Ƕ
კ 26 ۓ ᒧ
40. 3 2
ʳ
კ 27 Client ᆄ ۓ Ҟ
6 . 2 ߞ ф ૈ
೬ ᡏ ໒ ۈ Ⴃ ӧ ߞጃ ޑϟ य़ Ǵ ߞޑޣឯՏ Ӣ Ⴃ ޑۓԶԾ
ע ߞߞޑޣጃ Տ ֟ ᡉ Ң ѐ Ǵௗ Πٰӧԏ ߞޑޣឯՏ Ѻ ႝ η ແҹޑԏ ҹ
ޣǴа ϷЬ ԑ ᆶϣ Ǵ༤ ቪ ֹ ࡕǴࡪ ΠȨ ଌ ແҹȩ܈ ז ȨAlt+SȩǴߡ ஒ
ແҹଌ р Ǵଌ р ࡕ າ р ૻ ৲ ຎ ื ᆶග ᒬ ॣ Ǵග ᒬ ٬ Ҕޣແҹς ଌ ֹ ԋ Ǵϐ
ࡕࡪ ΠȨዴ ۓȩߡё ᝩ ុ ᏹ բ Ƕ
კ 28 ኗ ቪ ߞ ҹ ϣ
41. 3 3
ʳ
კ 29 ແ ҹ ଌ р ග Ң (֖ ග ᒬ ॣ )
6 . 3 ԏ ߞ ф ૈ
Ӄ ஒຎ ื ࡪ ډ Ȩԏ ߞպ ȩޑϟ य़ Ǵ٠ ࡪ ΠȨᔠ ཥ ߞȩ܈ ז ȨAlt+Rȩߡ
໒ ۈ ӛ ٬ ҔޑޣMail Server ڗཥ ແҹǴແҹԏ ҹֹ ԋ ࡕǴ р ૻ ৲ ຎ ื
ᆶග ᒬ ॣ ޕ ٬ ҔޣǴѰ Πف Ψ ᡉ Ң ແҹௗ ԏ ֹ ԋ ǴԶӧѓ ف р Ҟ
ԏ ߞպ ܌ ԏ ޑڗແҹኧ ໆ ᆶҞ ᘤ ំ ߞޑҹࢂಃ൳ ࠾ Ǵ٠ Ъ Ԗ Ȩ ࠾ ȩᆶȨΠ
࠾ ȩޑᘤ ំ ࡪ ່ Ƕ
კ 30 ᔠ ཥ ޑ ߞ ҹ
42. 3 4
ʳ
კ 31 ແ ҹ ௗ ԏ ග Ң (֖ ග ᒬ ॣ )
ʳ
კ 32 ແ ҹ ᘤ ំ
6 . 4 த Ҕ Ь ԑ ф ૈ
ӧȨቪ ཥ ߞȩޑϟ य़ Πࡪ ΠȨத ҔЬ ԑ ȩǴ р த ҔЬ ԑ ຎ ื ǴӅ Ԗ Ϥ
ঁ ឯՏ Ǵё а ឯՏ Ѻ Πѳ த ਔҔޑЬ ԑ Ǵࡪ ΠѰ Ћ ᜐ ޑȨɠ ȩ່ ਔǴѓ Ћ ᜐ
43. 3 5
ޑத ҔЬ ԑ Ծ ၢ ډ Ȩቪ ཥ ߞȩޑЬ ԑ ឯՏ ǴԶࡪ ΠȨᓯ Ӹ ȩ Ծ ᓯ Ӹ Ѻ
ޑத ҔЬ ԑ Ǵ܈ ࡪ Ȩᜢ ഈ ȩٰ่ ״ ຎ ื Ƕ
კ 33 த Ҕ Ьԑ ф ૈ ϐࡪ ່
ʳ
კ 34 த Ҕ Ьԑ ᒧ Ϸ у Ε ࡪ ່
44. 3 6
6 . 5 ߕ у ᔞ ਢ ф ૈ
ӧȨቪ ཥ ߞȩޑϟ य़ Πࡪ ΠȨߕ у ᔞਢȩǴ р ᘤ ំ ႝ တ ฯ ᅷ ᔞਢޑ໒
௴ ຎ ื Ǵᗺ ᒧ ा ଌ ๏ ԏ ҹޑޣᔞਢࡕǴࡪ ΠȨ໒ ௴ ȩǴஒр ᒧ ග ᒬ Ԅ ຎ ื Ǵ
य़ ᡉ Ң ᔞਢၡ ৩ ᆶӜ ᆀ Ǵᡣ ٬ ҔޣΒ ԛ ዴ ᇡ Ǵࡪ ΠȨࢂ(Y)ȩࡕǴߕ у ޑᔞ
ਢၡ ৩ ᆶᔞਢӜ ᆀ ᡉ Ң р ӧϟ य़ ޑѰ Πف ǴԶࡪ ΠȨ౽ ନߕ ҹȩࡕǴচ ҁ ߕ
у ޑᔞਢǴஒ ౽ ନǴԶࢂϟ य़ Ѱ Πف р Ȩς ౽ ନߕ у ᔞਢȩޑЎ ӷ ග Ң Ƕ
კ 35 ߕ у ᔞ ਢ ϐࡪ ່
ʳ
კ 36 ߕ у ᔞ ਢ ϐᔞ ਢ ໒ ௴ ᒧ
45. 3 7
ʳ
კ 37 ᒧ ዴ ۓ ϐᒧ
ʳ
კ 38 ߕ у ᔞ ਢ ϐ౽ ନ ࡪ ່
ʳ
კ 39 ߕ у ᔞ ਢ ϐ౽ ନ ග Ң
46. 3 8
6 . 6 ᙁ ܰ ी ᆉ ᐒ ф ૈ
໒ ௴ ೬ ᡏ ࡕǴӧϟ य़ Б ᒧ π ڀ ->ी ᆉ ᐒ ࡪ ΠǴ р ঁ ᙁܰ ी ᆉ
ᐒǴБ ߡ٬ Ҕޣ Չ ᙁܰ ၮ ᆉ Ƕ
ʳ
კ 40 ᙁ ܰ ी ᆉ ᐒ ϐф ૈ ϟय़
6 . 7 Չ ٣ ф ૈ
໒ ௴ ೬ ᡏ ࡕǴӧϟ य़ Б ᒧ π ڀ ->Չ ٣ ࡪ ΠǴ р ঁ ԃ Չ ٣
Ǵᗺ ᒧ Ѱ ᜐ В ය ࡕǴё а ӧѓ ᜐ ឯՏ ቪ ٣ Ǵࡪ ΠȨᓯ Ӹ ȩࡕǴᗺ ᒧ В ය
ׯ ᡂ ԋ ᙔ Յ ӷ ኬ Ǵӆ ᗺ ᒧ ԛ Ǵѓ ᜐ ឯՏ Ծ ᡉ Ң р Ǵ٣ ܌ ᒵ ٣ Ǵ܈ ࢂ
ҔѰ ΠޑВ ය ᒡ Ε ࡕǴᗺ ᒧ Ȩ ၌ ȩǴΨ р इ ᒵ ٣ ǶԶࡪ Ȩమ ନȩᒧ Ǵ
߾ ஒइ ᒵ ٣ మ ନǶ
ʳ
კ 41 Չ ٣ ϐф ૈ ϟय़
47. 3 9
ಃ Ύ ക ʳ ่ ፕ
ѱ य़ ᅌ ᅌ р ӭ ၟ E-mail࣬ޑ ᜢ ೬ ᡏ Ǵᡣ ٬ Ҕޣё а ᇸ ܰ ޑԏ วE-mailǴ
ՠ Ҟ ϝ Ԗ ӭ ٬ Ҕޣᗋ ࢂӧᆛ । Չ E-mailޑԏ วǴԶך ॺ ൩ ࢂа ೭ ኬ ޑр
วᗺ ी Ƕ
Զ೭ E-mail Clientࢂа JavaMailࣁࢎ ᄬ ܌ ኗ ቪ ǴЬ ा ӝ ΑSMTP Client
ᆶPOP3 ClientޑфૈǴׯ ᡂ ε ৎ ӧᆛ । ԏ วE-mailޑಞ ᄍ Ǵѝ ा ᙁൂ ޑ൳ ঁ
ۓǴό ໒ ଆ ᆛ । ൩ ё а ᇸ ܰ ޑӧ೬ ᡏ ԏ วE-mailǶ
٠ Ъ у Ε ΑБ ߡ٬ Ҕޣӧԏ วE-mailਔǴ܌ ሡ Ҕډ ޑ٤ фૈکλ ග Ң Ǵٰ
ග ϲ ٬ Ҕޣԏ วE-mailޑਏ ߡکճ ܄ Ƕ
ჹܭ ҁ ᚒ ޑ҂ ٰ ఈ Ǵё у Ε ё Ⴃ Ӄ ۓ ߞਔ໔ ޑфૈǴё ᡣ س ж
ඹ ٬ Ҕޣӧख़ ा В ό ᒱ ၸ วଌ E-mailǴа Ϸԏ ߞфૈᆶՉ ٣ ่ ӝ Ǵᒧ Չ
٣ В ය ߡஒВ ԏ ҹֹ ௨ ׇ ǴБ ߡ٬ Ҕޣᘤ ំ Ϸפ ൨ ແҹǶ
ୖ Ե Ў
[I]YOYO,Yahoo!ڻ ነ ပ - Javaޑϟ ಏ
http://tw.myblog.yahoo.com/jw!8bajdGGBAwN9fRfAC2Y8hg--/article?mid=6
&prev=7&next=5
[II]Є གྷ ޜ ໔ ၗૻ Ҭ ࢬ ύЈ - JavaMail APIಒ ၁ ಒ ှ ε ӄ
http://tw-box.com/bbs/simple/index.php?t202721.html
[III]wayne,ҔJavaMailቪ ᙁܰ ႝ η ແҹวଌ س ,(2001-09-04).
[IV] littlechenchenޑ ឯ - ແҹܺ ୍ SMTP/IMAPڐ ϟ ಏ
http://blog.csdn.net/littlechenchen/archive/2009/03/13/3987748.aspx