ό:ĭǶ1Z ·̫<ɻɋ ρ ̊ ȹ ź Ɯ ƣ

ý3̉ÑħɯɋÕ

E- CLIENT

Z «ȑ ͈ ż 4940E040 œ < Ž 4940E005 \ Ō ȓ > &  Ō ȓ

IʶŸΟ 98 ě 5 , ý3̉ÑħɯĴ ß

E-MAIL CLIENT

Z «ȑ ͈ ż Student: Yi-Rong _Du

Z «œ < Ž Student: Chi-hung _Chen

\ Ō ȓ > &  Advisor: Wen-Yen_Wang

ό:ĭǶ1Z

· ̫ < ɻ ɋ

ρ ̊ Ɯ ƣ

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

I ʶ Ÿ Ο 97 ě 5 , ρ̊ȹźƜƣ,ŽíΈɌ

i

ý3̉ÑħɯĴ ß

Z«ȑȑȑȑ ͈͈͈͈ żżżż œœœœ <<<< ŽŽŽŽ \\\\ ŌŌŌŌ ȓȓȓȓ >>>> &&&& 

ό : ĭ Ƕ 1 Z· ̫ < ɻ ɋ

Ŵ Ů

™ρ̊DŮ²Ƌ¬ɻĜȿɚ Java ̤ Ǥ ʆ Ω Application Programming

Interface (API)JavaMail ñ DŮ¾ ƌ Ŏ̆ š Ŕ ͪ Ŏ̤ ª « X ʈ Ω Ǫ Dz ʹ B )

 ʄ ¬Ωý 3 ̉Ñ ħɯ Ĵ ß

ý 3 ̉Ñ ř ¤ Z ί ζ > V ² Ȗ L ̜ H i ̠ˢ Ω Ʊ ķ ̫ ª D Ț Ʊ 

‹ƹ   ŗ  Ň ζ ħʡċ ƻ  n ý 3 ̉Ñ Ŏ1 ą̇  ζ ğ o ʄ ¬ʜ V L ̚ ǻ Ɣ

ʈ  ý 3 ̉Ñ Ÿ ÿ ̚ < ǻ Ɣ Ωí Ʉ $  ̲ Ə ř  -ǻ ː Ω˖ ƣ ˖ ɿ  ʠ Õ Ȗ

- ͝ ɻĜΩf ˱ [  Ț ij ɮ  Ň ʁ Ɖ Τ ę  ϖ † ο ͘\ Ő v Ʊ  Ωȿ Ÿ Ǝ

Ž

Ŏý 3 ̉Ñ ħɯ Ĵ ßΩX ¤ ȇ Ò Ģ ąʄ ¬λ Ωæ ŭ u Ůÿ Ĵ ß ɻ

Û ̦ c ħ  ͣΩŧ Ʒ Ȗϖ † ο ͘Ʊ i H ɘ ̖ ħɯ ý 3 ̉Ñ γ v Ŗ =  Ñ Ω

΢ ̓ ĜȖ Ʉ Ωέ ̉Ñ ķ έ Ŏÿ Ĵ ߙ $ ζ Į Ģ ą¿ ý 3 ̉Ñ Ȣ Ȣ Ĝ Κ Ω\

˸ ʈ ʺ [ ʄ ¬λ Ω< ź ȿ Ÿ 

Ŏ™ρ̊ˎ ¯ JavaMail ɻĜȿɚř ý 3 ̉Ñ ħɯ Ω Ƌ̜ ɸ [  )  ʄ

¬λ ÿ ħɯ ý 3 ̉Ñ Ʉ i ƀ ¬Ω< ʘ ģ Ű X  Ǫ q ź ʹ ̥ B ɨ ĺ )   Ωý

3 ̉Ñ ħɯ Ĵ ß

Κ Ɏ ď : E-mail ClientJavaJavaMail

ii

Ⱦ Ȭ

Ί Ȭ \ Ō ȓ -> &  Ō ȓ ř ͅ ™ρ̊ȹ ź Ω¬ H u Ǥ ʆ ρ̊Ω·

̫ ) ó ȋ Ĉ Ĉ ͱ Έ Dzƪ Ωρ̊̆ { Ț  Dzƪ Ö ʡ§ Ņ Ʉ Ǭ ²Ϟ Ʉ ˸ ά ʗ N

ς ˮ ΩΈ ɘ ó Dzƪ ʱ ʫ ɔ ąȋ ŮΊ Ȭ ό : ĭ Ƕ 1 Z · ̫ < ɻɋ Ω1 Ǿ ϧ -

̻ ˜  DÒ Ǥ ʆ Ωɋ  Ǒ ʛ Ωģ Ū  R ɡ Ω· ϕ E ˸ ó ™ρ̊č Ȃ Ǒ ģ 

iii

¶ ĭ

, Ž Ɍ ...... 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 Ë R ŝ Ĵ ßÜ ɻĹ...... 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 ϔ ¬Dĩ\ ˸ ...... 3 4 6.5  [ Ɩ ɒ \ ˸ ...... 3 6 6.6 ʹ ͈ Ű ǩ Š \ ˸ ...... 3 8 6.7 š ɻ w \ ˸ ...... 3 8 Ë ŝ ʐ ε ...... 3 9 Ά ō & ϐ ...... 3 9 iv

Ĺ à

Ĺ 1 JavaMail API L ʐ ƌ Ĺ ...... 4 Ĺ 2 E-mail ͂ ę NJ £ ...... 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 D[ Ə ...... 12 Ĺ 11 Ë  Θ SMTP Client L Ĝ Κ ģ ˫ ...... 13 Ĺ 12 SMTP Client ͂ ę ØɻL ¡ Ú · Ɂ ...... 13 Ĺ 13 Ë  Θ POP3 Client D[ Ə ...... 14 Ĺ 14 Ë  Θ POP3 Client L Ĝ Κ ģ ˫ ...... 14 Ĺ 15 Ë  Θ Client L Ĝ Κ ģ ˫ ...... 15 Ĺ 16 Ë  Θ L DŮ[ Ə ...... 15 Ĺ 17 Ë  Θ Email Client L DŮ[ Ə ...... 16 Ĺ 18 Ë  Θ Email Client L ħÑ ƒ ...... 16 Ĺ 19 Ë  Θ Email Client L Ĝ Κ ģ ˫ ...... 17 Ĺ 20 Ë | Θ Email Client L μ  ƒ ...... 17 Ĺ 21 Ë | Θ Email Client L ͂ ̼ ģ \ Ǥ º ...... 18 Ĺ 22 Ë | Θ Email Client L ħÑ ƒ ...... 18 Ĺ 23 Ë | Θ Email Client L ħÑ Ǒ ģ Ǥ º ...... 18 Ĺ 24 Ë R Θ Email Client L έ ʺ  [ Ɩ ɒ \ ˸ ...... 19 Ĺ 25 Ë R Θ Email Client L ̚ <  [ Ɩ ɒ ˖ ɿ ...... 19 Ĺ 26 ģ ˫ ğ ̰ ...... 31 Ĺ 27 Client Ǥ ģ ˫ ̰ ¶ ...... 32 Ĺ 28 ˷ ˊ  Ñ _ Ȃ ...... 32 Ĺ 29 ̉Ñ ̼ X Ǥ º (Ʈ Ǥ Ĥ Ɠ ̗ )...... 33 Ĺ 30 Ƙ Ç έ Ω Ñ ...... 33 Ĺ 31 ̉Ñ ħǤ º (Ʈ Ǥ Ĥ Ɠ ̗ )...... 34 Ĺ 32 ̉Ñ ʜ V ...... 34 Ĺ 33 ϔ ¬Dĩ\ ˸ L š ̐ ...... 35 Ĺ 34 ϔ ¬Dĩğ ̰  [  š ̐ ...... 35 Ĺ 35  [ Ɩ ɒ L š ̐ ...... 36 v

Ĺ 36  [ Ɩ ɒ L Ɩ ɒ ̚ < ğ ̰ ...... 36 Ĺ 37 ğ o ͔ ˫ L ğ ̰ ...... 37 Ĺ 38  [ Ɩ ɒ L Å ͘ š ̐ ...... 37 Ĺ 39  [ Ɩ ɒ L Å ͘ Ǥ º ...... 37 Ĺ 40 ʹ ͈ Ű ǩ Š L \ ˸ [ Ə ...... 38 Ĺ 41 š ɻ w L \ ˸ [ Ə ...... 38

vi

Ë  ŝ [ ȃ ε

1 . 1 ĤɊͿŠȖ¶Ω

ý 3 ̉Ñ ÿ ¤ Z ί ζ ²Ʊ H i ̠ˢ Ω< ʘ H ǥ ² Ȗ Ωϖ ķ Ä Ü ̠²

Έ Ǿ ˖ ƣ b q š © i Š Ň ú ñ ý 3 ̉Ñ έ « ŎÒ ΩɌ ̋ H ƋȚ Ʊ  ƻ G Ň Į

 Ʊ H  Ωý 3  ͣȚ  ŗ  ζ ħʡƻ  n ý 3 ̉Ñ i ɘ ý 3 ̉Ñ ÿ  ̃ 

« â ΩƉ Ů̜ ̤ H š ʈ ħɯ ý 3 ̉Ñ Ĵ ßς ģ Ț x Ʊ  ý p   Ū Ωƀ ¬Ĵ

ßʈ ˸ ʺ [ ̉Ñ ʜ V Ωȿ Ÿ Ȗ Ƌ̜ 

1 . 2 ɋ Õ ο ź

™ρ̊DŮź ñ SMTP ClientˁPOP3 Clientʗ Ņ Õ Ĝ ͪ ʐ õ ÿ í  Ʊ Ĵ ß  ʈ Ŕ ¤ ħɯ ý 3 ̉Ñ ʃͿ ź ɍ ʯ Google mailʈ ͪ ñE-mail ClientΩMail server ʄ ¬λ μ  Ʉ ζ V ¯SMTP Clientʈ ͂ ̼ ʡMail serverŎħ λ ζ ŀ ØPOP3 ClientʡMail serverʈ ͪ ħ

1 . 3 _ Ȃ ο ź

™ρ̊ʄ ¬ɻĜȿɚJava™ ΩJavaMailɋ Õʈ ͪ ñ Ĵ ßΩD¾ ƌ Ŏ\ ˸ Ȗ [ Ə  ²¬Java̤ ˷ ˊ Ĵ ß_ Ȃ ͘ Χ ™Ωħɯ  \ ˸ ~ Ƀ [  ϔ ¬D ĩʹ ͈ Ű ǩ Š  D ě š ɻ w ʃ \ ˸ 

1

Ë  ŝ [ Ĝ Κ [ ×

2 . 1 Java

™ρ̤̊ ʄ ¬ΩJavaɻĜȿɚ_ | Ĕ Ü \ ˸ À ‹ȕ ˸  Ǥ ʆ ͈ ͅ ̆

š Ο ɾ  Ϳ ź Ω< ʘ ŎB ȋ Ɖ ŮΩ²Java K ʁ R ʙ ȿɚ\ ˸ ˁʙ ɻĜȔ  ϣ H Ĉ £ ͂ ÕȿɚI ί ąš ˸ Ĉ £ ċ ΩΒ ̊ĝ ²ąȃ (Multithreading)· Ɂ Ȕ Đ ʯ ǻ ʖ ɻĜ̚ ɯ  Ɓ ĜŰ ǩ [ I ]

SUNΩJavaȿɚ³ ´ Ɍ I Ʌ ͌ JavaȿɚΩʍ ɲ :

1. ʹ Ɗ (Simple)Ȃ ͈ ˷ ˊ ɻĜH ʁ Ůϧ Ʉ ̜ Ω̭ ͭ Ŏ˸ ƨ ɡ ¤ N Ωʁ ț  2. Κ Ñ \ ó Ω(Object-Oriented)Κ Ñ \ Ωģ Ű ² ǟ Ɖ ÿ · Ɂ ˁ [ Ə ΩǶ ‡ Ű Ϡ Ωķ Ǣ Ɠ ¬(Plug and Play)Å ²Κ Ñ \ ó ģ Ű Ω Ɖ ɲ  3.  dz ĜΩ(Distributed)JavaĮ  Ʊ € ̄ Ü ΩɻĜȔ B € Ȃ ͈ þ Ȗ HTTP ˁ FTP ʃ TCP/IP ķ ̫ ʨ ˫ Ĝ ͋ õ  Java ƀ ¬ ɻ Ĝ

(Applications)˸ ÿ ǻ Á  ̚ <  Ĺ ʐ ʄ ¬Κ Ñ Ʊ č í ŀ ØURL Ĺ ʐ ʄ ¬ Ʊ ΄ Ρ Ɩ ɒ ɋ Õ(Local File System) 4. Ϟ ̯ ̜ Ω (Robust)¯ Java ̤ ˷ ˊ X ΩɻĜ˸ ÿ ąǟ ΁  Ϊ š Ŏʘ Į ʙ ͑ ˫ ̜ JavaȖC/C++Ű 1 H í ɲ ²JavaĮ  Ʊ ̑ L ̓ P (Pointer Model) ʈ 0 ͘ ̦ c ßė Ȣ ˊ (Overwriting Memory)ˁ· Ɂ ό Φ (Corrupting Data)Ωi ˸ ̜ [ I ]

5. Ĕ Ü ̜ Ω(Secure)Javai Į ̇ Ʊ ̠ ˋ ΩQ ˱ (Interlocking) X # ¬˸ Į ȿ þ ɳ / ʠ Õ Ω  ˁʷ ̧ š ñ Ωɯ « 

2

6. ¾ ƌ I ½ ̜ Ω(Architecture Neutral)JavaΩͳ  L ª «  ǟ ʐ ƌ I ½ Κ Ñ ΩƖ ɒ ɡ Ĝ(Object File Format)ĵ ʄ ϣ ͳ  ͘ϣ H ÿ € ą ǟ Ĉ £ L I Ϊ š 

7. i ; ϕ ̜ Ω(Portable)ɻĜȔ 6 ͅ ɋ ÕΩ Ņ Õ „ ˫ `  ɼ i ; ϕ Ω[ Ə Java™ɢ ʘ Ū Į € ċ Ωi ; ϕ ̜ 

8. ž  Ω(Interpreted)Javaž  L ˸ ά þ ÿ Ò Ů Š L  Ϊ š Java ŧ ] ͘(Bytecodes)Ĵ ÿ ̆ š ɻĜĹ ʐ Ʉ Ʉ ̜ ΩO Ě ĵ ř ͅ ǥ ɵ ɻĜΩ̚ ɯ ØɻĮ ý 1 ΩƏ ʫ 

9. ͟ ȿ ˸ Ω (High Performance)Javaŧ ] ͘ɨ ĺ þ ˸ ė ˧ Ǭ ģ Š [ ͘(Machine Code)

10. ąΪ š ȃ Ω (Multithreaded)Javaȿɚʘ Į ąƉ ͵ ť Ω\ ˸ ĵ ř ͅ Q Ϳ û ƀ ˸   Ɠ Ʉ Ϊ š š ñ ²Į Ə ʫ Ω

11. Ϳ Ū Ω (Dynamic)Java2C̠C++ȿɚȋ ʘ Į Ϳ Ū ̜ ȋ ˸ ú ƀ Ʉ ʝ ÿ Ò Ωǁ ļ JavaH ζ ú ɻĜȔ Ωȋ έ Ŏ ̲ Ɖ έ ͳ  ɻĜ

3

2 . 2 JavaMail API

Ĺ 1 JavaMail API Lʐ ƌ Ĺ

JavaMail² Ʊ ¬ͅ | ½ ̉Ñ ɋ Õ̓ P Ω̴ ˥ APIAPIǤ ʆ  Ʊ © ½ Ω ‹x Ȗʨ ˫ ¾ ƌ i H ¬ʈ | ½ ̉Ñ Ȗ̫ Ȣ ͂ ɠ ƀ ¬ɻĜDzƪ i ¬„ ʈ | ½ č

EudoraFoxmailMS  ̃ Ω̉Ñ ¬" N £ ɻǟ Mail User Agent,

ʹ Ǡ MUA ŎH ²ĝ SendMail̠λ ʙ „ Ω̉Ñ ͂ ę N £ Mail Transfer Agent ʹ Ǡ MTAɻǟ ɯ ̌ i H ͂ ̼ ɠ ̼ ˧ ɯ ̉Ñ [ II ]ϥ t ~  Ʊ ə { ʈ Ğ Dz ƪ ĵ ɼ ý 3 ̉Ñ ¬" * ϔ ¬MUAɻǟ ʈ ˊ ̉Ñ ŎMUAʁ Đ ʹ MTAĈ £ ̉Ñ

Ωɠ ̼  JavaMail²SUNɯ Š ΩĈ £ ý 3 ̉Ñ Ωƀ ¬ɻǟ -[III]„ ă \  ɼ Ű ϔ ¬Ω̉Ñ ͂ ̼ ʨ ΩŔ ¤ ) ͼ ɸ B Ǥ ʆ € Ȃ ͈ Ω) ͼ h γ ¬„ ƪ Ÿ ¶ +

„ Ƀ Ȫ Į ė JDK] Ʈ  ú Ĵ ʁ Ůϥ SUNΩˬ ) ǻ ː   É ʡJavaMail΢ & Ñ ]  ͘ Ĵ L ~ Ƀ ʁ ŮSUNΩJAF(JavaBeans Activation Framework )ƙ . JavaMailς H ˸ Κ  4

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 ɋÕ¾ƌ

™ ρ ̊ Lv ß ɋ Õ ¾ ƌ ²H JavaMailLAPIź ñ‹ x Þ ¬JavaɻĜ ȿ ɚ [

Ə  ŎD Ů ¬ʡ Ωʗ Ʊ ɋ Õ ñ  SMTP Client

 POP3 Client ý 3 ̉Ñɯ̼ Ĵ ß D Ů ¯ μ λý p ¯ SMTP Clientɯ̼ E-mailŗMail ServerŎħ λV ¯ POP3 Clienth ϥ Mail Server ħ E-mailu Ů v õ ĵ ʗ Ʊ

ɋ Õ Ʊ i H ά ¬Ɗ Ĵ ß ź ħ ɯý 3 ̉ÑΩͿ ź

5

[

Ĺ 2 E-mail ͂ ę NJ £

 SMTP CLIENT[

SMTPʹƊ ̉Ñ͂ ę ʨ ˫` ɠ ̼ ̉Ñيʣ Dz ƪ ςʄ ¬Χ ͅ JavaMail

Ωɻǟ ȖZ ɐ ̠ λISPΩSMTP͒ ͽ Ǥ̆ š ķ ̫ ĵ Ʊ SMTP͒ ͽ Ǥς̉Ñ˧ ɯʡ ħ λΩSMTP͒ ͽ Ǥά ŗŰ ė ħ λķ Ø POP̠ λIMAPʨ ƿ ϣĵ ɸ H ʁ Ů SMTP͒ ͽ Ǥʄ ¬%  , Ž Ω̉Ñ˧ ɯŸ ²5 Ů ͱ Έ SMTP͒ ͽ Ǥ͔ٝ ģ

\SMTP͒ ͽ ǤΩģ\ȖJavaMailLAPIɌ Κ  

 POP3 CLIENT[

POPΩÜ Ǡ ²Ɠ ̉Ñʨ ˫¬ͅ ý 3 ̉ÑΩ ħ „

ʄ ¬TCPΩ110Ĺ Υ ¤ ÿϔ ¬Ω²ËΘ̤ H ʹǠ ñPOP3POP3Y . ¬ Client/Server< ź ̓ Ĝ Clientė Ǡ ñl " Ǥ̃ Dz ƪ * ϔ ʄ ¬ý p Ň ²ź ñl

" ǤŎServer. ²POP3Ω̉Ñ͒ ͽ ǤȈ Ʊ Ǧ ˥ Ωʇ 3 Server²Ģ ą 7 ͣ Ω̫ õ Ʊ ĝ Dz ƪ ̤ ˲ Ũ ̔ ̢ Ωͣ ʐ ƌ Ŏl " ǤƱ ċ 2 ²Ʊ  Ȯ ʹ Ĕ ΂ h

ͣ ̚ ˱ ʯ̌ ΩÐ £ [IV]

6

POP3ˁ Ə ΩSMTPʨ ̌ ʙŔ ¤ $ ²Ʊ l " ǤȖ͒ ͽ L Ωř© Ø ɻDz ƪ ɲ ƈ ý 3 ̉ÑĴ ß IΩ ħ š ̐ ý 3 ̉ÑĴ ß Ƙ Û ζ ʄ ¬DNS

ʨ řPOP͒ ͽ Ǥ̆ š ž ͣ IPþ Ʒ IPþ Ʒ ė ž ͣ X ʈ ̉Ñɻǟ ̚ ˠ ʄ ¬TCPʨ Ĺ ̉Ñ͒ ͽ ǤΩ110Ĺ Υ ú ñPOP͒ ͽ Ǥ²2 È Ğ Ω̤ H ÿ

ĵ Ʊ Ø ɻIDz ƪ Ĝ řŮ ʃ 2 È ϧ ΩɄ̜  ̉Ñɻǟ ģ \þ Ĺ  POP͒ ͽ Ǥ Ƙ Û ζ ʄ ¬USERˆ O ςͣ Ωϖ † ͂ ʗ POP͒ ͽ Ǥɍ Þ ʄ ¬PASSˆ O ςͣ Ωϖ † ͂ ʗ ͒ ͽ ǤǑ ģ ĵ Ɂ Ͷ Ø ɻ ̉Ñɻǟ ʄ ¬STATˆ O ή ț ͒ ͽ Ǥϟ û ͣ ΩÕ Ű ·Ɂ 2 č ̉Ñ Ǭ ̇ ˁ̉Ñ1 7 ʃ ɍ LISTˆ O ζ à X ͒ ͽ Ǥ™ ̉Ñ̇ ̎  ʈ̉Ñɻǟ Ʊ ζ ʄ ¬RETRˆ O ħ ̉Ñ ħ n  ʄ ¬DELEˆ O ς̉Ñ͒ ͽ ǤIΩ ̉Ñģ\ñƌ ͘Λ Ū ʄ ¬QUITˆ O Ʉ̉Ñ͒ ͽ Ǥζ ςģ\ñƌ ͘Λ Ū Ω̉Ñʗ ƌ ͘ [

Ë | ŝ [ Ĵ ß \ ˸ ¾ ƌ

4 . 1 ʁ ț  ͣ

Ƙ Û ʁ Ů Ʊ i  ɾ SMTPˁPOP3ʨ ˫ΩMail Serverʈ̆ š ý 3 ̉ÑΩħ ɯ̤ H ™ ρ ̊ D Ů ²H GoogleΩGmailͣ Mail ServerÿȻ ¢ + ̲ Û ʡ

GAMIL̚ <  ɾ POP3Ω\˸

Ŏǁ ļ ) Ə ͘ CLIENTǤ™ ɢ Ů Į JavaΩǁ ļ Ƀ ʁ t ~ É JavaMail v1.41  JAF(JavaBeans Activation Framework)v1.4.1  JMF(Java Media Framework)v2.2.1e

ʙĔ ˜ ș ÿ č :

1. ς JavaMail  JAF ž Ű ǥ L ɸ ς mail.jar  activation.jar  customizer.jarjmf.jarmediaplayer.jarmultiplayer.jarΤ ȹ ʡ

$C:\ProgramFiles\Java\jdk1.6.0\jre\lib\ext% 7

˗$C:\Program Files\Java\%ñ™ Ŕ ͪ LJavaĔ ˜ Á ș ʙΘ™ ñ1.6.0ή ʁ  Ŗ = ΩÁ ș h ź Ƶ u Ů ̓ ʡ IΩ$jre\lib\ext%

Ɠ i 

2. ÿ ǁ ļ Ò ̇ Ω ɋ Õ Ò ̇ $ Path % I ʺ [ H  Á ș $C:\ProgramFiles\Java\jdk1.6.0\jre\lib%

Ĺ 3 ģ ˫ ǁ ļ Ò ̇

 ÿǁ ļ Ò ̇ Ωɋ Õ Ò ̇ έ ʺ Ʊ ɋ Õ Ò ̇ ñ$CLASSPATH%ɸ ς mail.jaractivation.jarcustomizer.jarjmf.jarmediaplayer.jar multiplayer.jarÜ Ņ ΩƖɒÁ ș [  ʡ Ĵ ɋ Õ Ò ̇ LÒ ̇ Ʀ I $ ʇ č  C:\ProgramFiles\Java\jdk1.6.0\jre\lib\ext\mail.jar; %

[ Ĺ 4 έ ʺ CLASSPATH ɋ Õ Ò ̇ Ȗ ʙ Ò ̇ Ʀ

8

4 . 2 ģ Ű  ͣ

Ĺ  Ɖ ñSMTP ClientˁPOP3 ClientΩʄ ¬[ Ə Û ž ʗ ǟ ɋ Õ ΩɻĜ

͋ \ɸ B Ǻ [ Ə ȖɻĜ ͪ ʐ õ ģ ñi H í Ʉħ μ ý 3 ̉ÑΩE-Mail Client

[ [

Ĺ 5 SMTP Client [Ə Ĺ 6 POP3 Client [Ə

ñ ȯ  ; ˿ ΩMail Serverģ˫ˁʄ ¬λ·̫ ę  ̤ H $ ̲ ςʗ ǟ ɋ Õ ΩClientǤģ˫ͪ ʐ õ ʈǤ ʄ ¬λħ ɯý 3 ̉ÑɄΩȿ Ÿ [

[ [

Ĺ 7 SMTP Profile Ĺ 8 POP3 Profile 9

4 . 3 Ȼ ¢ Ű Ĥ

Ƙ Û Û ςSMTP ClientˁPOP3 ClientΩʄ ¬[ Ə ɻĜ v õ ɸ B Ȼ ¢ ² ƙ i ϔ í Ʉħ ɯý 3 ̉ÑȖȇ ʛ Ϊ š ɄΩʃ  Ʉ̜ ɸ [  D ĩ ķ ĭ ̉Ñ

[ ƖɒŰ ǩ ŠȖš ɻ w\˸Ȼ ¢ ɻĜ Ĝ Ȃ Ϊ š ²ƙ ϔ H v ß Ϊ š ĺ

{ ²ƙ Į ʱ ˙ l 

Ë R ŝ [ Ĵ ß Ü ɻ Ĺ

5 . 1 Ü ɻ Ĺ

[ Ĺ 9 Ĵ ß Ü ɻ Ĺ 1 0

ʄ ¬λËij ̚ < Ĵ ß Ʉʁ Û ʡ ģ˫(1)h ę  SMTPȖPOP3ΩHOSTˁ POSTSSLʨ ˫Ωϖ † ο ͘ ę  Ǒ ɲ ğ ŧ Đ ij ̚ < ɄƱ i H  Þ Ɖ

Τ ę  ģ˫Ǒ i ğ o Ű ǩ Š(2)Dě š ɻ w(3)̠ μ (4)Ȗħ (10)\ ˸μ [ Ə i H ˷ ˊ έ ̉Ñ(5)ɸ [  ϔ ¬D ĩ (6)Ȗ [ Ɩɒ(7)Ñ͂ ̼ (8) ςĮ μ ÑǤ º (9)Ω˖ ɿ ˁƓ ̗ ħ ÑŅ Õ ğ o i ½ Ɠ ʱ ̉Ñ(11)̉ Ñ ħ Ǒ ģ ζ Į ħ ÑǤ º (12)Ω˖ ɿ ȖƓ ̗ ɸ B Į š  n (13)Ȗn (14) ʈʜ V ħ Ñ[

5 . 2 Ü ɻ Ĺ Ʌ ͌

1. ģ˫ ģ˫ʄ ¬λͣ SMTPPOP3LHostˁPortȖSSLʨ ˫Ωϖ † ο ͘ 

2. ʹ͈ Ű ǩ Š ) ʄ ¬λŰ ǩ L< ʘ 

3. š ɻ w i ŧ Đ ɻ Ñ* Ȃ ʡ ζ X ¤ Ǥ Ĥ ˖ ɿ 

4. μ  ğ o μ L\˸

5. ˷ ˊ έ ̉Ñ ͬ  ħ Ñ D ĩ H Ñ_ Ȃ ʃ ?ŧ 

6. ϔ ¬D ĩ i ă Û ŧ Đ ϔ ¬ΩD ĩ ɸ ÿ˷ ˊ έ ̉ÑɄɲ ğ [  

7.  [ Ɩɒ i ÿý 3 ̉ÑIέ ʺ Å ͘ Ñ

8. ͂ ̼ Ñ š ɯ̼ ̉ÑLš ̐ 

9. μ ÑǤ º ͂ ̼ ̉Ñģ \ ζ X ¤ Ǥ Ĥ L˖ ɿ ȖǤ º Ǻ 

10. ħ 

1 1

ğ o ħ L\˸

11. ħ ̉Ñ š  ħ ̉ÑLš ̐ 

12. ħ ÑǤ º ħ ̉Ñģ \ ζ X ¤ Ǥ Ĥ L˖ ɿ ȖǤ º Ǻ 

13.  n ɲ ğ i ʜ V  n ̉Ñ

14. n ɲ ğ i ʜ V n ̉Ñ

5 . 3 ģ Ű Ø ɻ Ȗ Β ̊

1. ËΘ

Ĺ 10 Ë Θ SMTP Client D[Ə

1 2

Ĺ 11 Ë Θ SMTP Client LĜ Κ ģ ˫

Ĺ 12 SMTP Client ͂ ę Ø ɻ L¡ Ú · Ɂ

1 3

Ĺ 13 Ë Θ POP3 Client D[Ə

Ĺ 14 Ë Θ POP3 Client LĜ Κ ģ ˫

Β ̊ Ȗ) ͼ : SMTP ClientĮ Ù º X > ͂ ̼ ̫ Ȣ Ÿ ÑY š ̼ X ̲ ÿŧ Ʒ ģ

˫?ŧ [  ŧ Ʒ ͣ ΩSSLϖ † ο ͘ E ˸V Ø Mail Serverμ ̼ ̉Ñ POP ClientɌ ͼ ϔ ħ Mail ServerǤΩý 3 ̉Ñʁ ʡ Gmail

Ωý 3 ͣ ̚ < POP3Ω\˸

1 4

 Ë Θ[

Ĺ 15 Ë Θ Email Client LĜ Κ ģ ˫

Ĺ 16 Ë Θ Email Client LDŮ [Ə

Β ̊ Ȗ) ͼ : SMTP ClientˁPOP3 Client> i H Ň ʄ ¬ħ ɯ\˸Ÿ Ň 6 ͅ

Ʊ Ɖ ˖ ɿ ʁ ςʗ Ʊ ˖ ɿ ͪ v õ ó ʄ ¬λǤ ȿ Ÿ 

 ËΘ[

1 5

Ĺ 17 Ë Θ Email Client LDŮ [Ə

[ Ĺ 18 Ë Θ Email Client Lħ Ñ ƒ

1 6

Ĺ 19 Ë Θ Email Client LĜ Κ ģ ˫

Β ̊ Ȗ) ͼ  > ςSMTP ClientˁPOP Clientv õ ÿí Ʊ ˖ ɿ  ɸ B ςģ˫ ʗ Ʊ Ωŧ Ʒ ģ˫?$ ͪ v õ 5 ɯ« Ɍ ͼ ħ μ Ɍ ͼ í Ʉ̆ š ΩΛ

΁

 Ë| Θ[

Ĺ 20 Ë|Θ Email Client Lμ  ƒ 1 7

Ĺ 21 Ë|Θ Email Client L͂ ̼ ģ \ Ǥ º

Ĺ 22 Ë|Θ Email Client Lħ Ñ ƒ

Ĺ 23 Ë|Θ Email Client Lħ Ñ Ǒ ģ Ǥ º

Β ̊ Ȗ) ͼ  Ƶ ȇ SMTP ClientˁPOP Client> V i H í Ʉ̆ š ħ Ȗμ 

Ωq ź Ÿ ) ʄ ¬λǤ q ź Ω [ \˸  

1 8

 ËR Θ:[

Ĺ 24 ËR Θ Email Client Lέ ʺ  [ Ɩ ɒ \ ˸

Ĺ 25 ËR Θ Email Client L̚ <  [ Ɩ ɒ ˖ ɿ

Β ̊ Ȗ) ͼ  > [   Ñʜ V š ̐  [ Ɩɒϔ ¬D ĩ Ű ǩ ŠD

ě š ɻ w\Ɠ ̗ Ǥ º \˸

1 9

 Ɖ Ů ɻ Ĝ ͘ [

  μ LɻĜ ͘ [

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(); //_ & [ [

//ʯϣ6 ̜ Κ Ñ

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); //ģ˫ď ] ͳ ͘ ñBIG5

props.setProperty("mail.mime.charset", "big5"); 2 0

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

2 1

//| ½ 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();//v ̉͘Ñ_ Ȃ fds = null;//v ͘ [ Ɩɒ

} catch(Exception e) { JOptionPane.showMessageDialog((Component) null, "̉ÑɌ ͼ ͂ ̼ ", "̫ Ȣ ",

2 2

JptionPane.WARNING_MESSAGE); } } protected static void Clear() { EmailClient.jTextFieldReceiver.setText(""); EmailClient.jTextFieldSubject.setText(""); EmailClient.jTextArea.setText(""); } } 2. ħ LɻĜ ͘

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

2 3 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");

// ʯϣ6 ̜ Κ Ñ

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

2 4 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();

2 5

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(

2 6

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(

2 7

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

2 8

} 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();//ϣʡ š V Ĉ £ Ω Ñô ď //h ʡ headerˁfooter

String s = temp.substring(11,temp.indexOf("?=")-1); //& Ñô ̃ Ň V Ø base64ͳ ͘ ,Ə ²ž ͘

String fileName = base64Decoder(s); System.out.println("Į  Ñ:"+fileName);

InputStream in=part.getInputStream(); FileOutputStream writer=

2 9

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

3 0

Ë ` ŝ [ Ĵ ß Ŕ ¤

6 . 1 ClientǤģ ˫

Ĵ ß Ëij < Ϳ Ʉʁ Û ʡ ˆ  ə ΩƖɒ->ģ˫ š L ζ ˺ X ģ˫ SMTPȖPOP3ΩHostȖPortH User InformationΩ˖ ɿ ™ ij Ŕ ¤ ²H Gmailñ

Mail Serverģ˫Ǒ ­ i ğ o ŧ Đ H  ģ˫̠ ²̓ ]. Ŗ Ϳ Κ Ő ˖ ɿ 

Ĺ 26 ģ ˫ ğ ̰

3 1

[ Ĺ 27 Client Ǥ ģ ˫ ̰ ¶

6 . 2 μ  \ ˸

Ĵ ß ̚ ˠ ă ģÿμ ͣ Ω[ Ə  μ λΩ?ŧ  ζ ú ă ģΩģ˫ŎŖ

Ϳ Ǻ μ λΩͣ ŧ Ʒ Ù º  h  ʈÿħ λΩ?ŧ  ’  ý 3 ̉ÑΩħ Ñ

λH D ĩ Ȗ_ Ȃ ͬ ˊ Ǒ š 4͂ ̼ ̉Ñ5̠ Ǯ 4Alt+S5ζ ς ̉Ñ̼ X ̼ X ζ ˺ X ̫ Ȣ ˖ ɿ ȖǤ Ĥ Ɠ ̗ Ǥ Ĥ ʄ ¬λ̉Ñ> ͂ ̼ Ǒ ģ L

š 4͔ ˫5i ϡ K q ź 

Ĺ 28 ˷ ˊ  Ñ _ Ȃ

3 2

[

Ĺ 29 ̉ Ñ ̼ X Ǥ º (Ʈ Ǥ Ĥ Ɠ ̗ )

6 . 3 ħ  \ ˸

Û ς˖ ɿ š ʡ 4ħ ƒ 5Ω[ Ə ɸ š 4Ƙ Ç έ 5̠ Ǯ 4Alt+R5 ζ ̚ ˠ ó ʄ ¬λΩMail ServerȄ ʯέ ̉Ñ̉Ñħ ÑǑ ģ ζ X ¤ ̫ Ȣ ˖ ɿ ȖǤ Ĥ Ɠ ̗ ƣ έ ʄ ¬λˆ ə $ ζ Ù º ̉Ñ ħ Ǒ ģ Ŏÿk  ə ζ X ¤ ¶ +

ħ ƒ ̤ ħ ʯΩ̉Ñ̇ ̎ Ȗ¶ + ʜ V ΩѲËƻ n ɸ B Į 4 n 5Ȗ4

n 5Ωʜ V š ̐ 

Ĺ 30 Ƙ Ç έ Ω  Ñ

3 3

[

Ĺ 31 ̉ Ñ ħ Ǥ º (Ʈ Ǥ Ĥ Ɠ ̗ )

[

Ĺ 32 ̉ Ñ ʜ V

6 . 4 ϔ ¬ D ĩ \ ˸

ÿ4ˊ έ 5Ω[ Ə š 4ϔ ¬D ĩ 5ζ X ¤ ϔ ¬D ĩ ˖ ɿ Ý Į `

Ʊ ?ŧ i H ?ŧ  ’ ‹ ϔ Ʉ¬ΩD ĩ š ˆ # Έ Ω4 5̐ Ʉk # Έ

3 4

Ωϔ ¬D ĩ ζ Ŗ Ϳ  ʡ 4ˊ έ 5ΩD ĩ ?ŧ  Ŏš 4ŧ Đ 5ζ Ŗ Ϳ ŧ Đ ’

 Ωϔ ¬D ĩ ̠ š 4Κ Ő 5ʈʐ Ȍ ˖ ɿ 

Ĺ 33 ϔ ¬ Dĩ \ ˸ Lš ̐

[

Ĺ 34 ϔ ¬ Dĩ ğ ̰  [  š ̐

3 5

6 . 5  [ Ɩ ɒ \ ˸

ÿ4ˊ έ 5Ω[ Ə š 4 [ Ɩɒ5ζ X ¤ ʜ V ý p ɷ Ǘ ƖɒΩ̚

< ˖ ɿ ɲ ğ Ů ͂ ̼ ʗ ħ ÑλΩƖɒ š 4̚ < 5ςX ¤ ğ o Ǥ Ĥ Ĝ ˖ ɿ 

 Ə ζ Ù º ƖɒÁ ș Ȗô Ǡ ó ʄ ¬λ ij ͔ Ɂ š 4²(Y)5  [ ΩƖ ɒÁ ș ȖƖɒô Ǡ ζ Ù º X ÿ[ Ə و ə Ŏš 4Å ͘ Ñ5 NJ ™ 

[ ΩƖɒςė Å ͘Ŏ²[ Ə ˆ ə ζ X ¤ 4> Å ͘ [ Ɩɒ5Ω& ď Ǥ º 

Ĺ 35  [ Ɩ ɒ Lš ̐

[ Ĺ 36  [ Ɩ ɒ LƖ ɒ ̚ < ğ ̰

3 6

[

Ĺ 37 ğ o ͔ ˫ Lğ ̰

[

Ĺ 38  [ Ɩ ɒ LÅ ͘ š ̐

[

Ĺ 39  [ Ɩ ɒ LÅ ͘ Ǥ º

3 7

6 . 6 ʹ ͈ Ű ǩ Š \ ˸

̚ < Ĵ ß ÿ[ Ə  ) ğ o < ʘ ->Ű ǩ Š š ζ X ¤ Ʊ ʹ͈ Ű ǩ Š) ʄ ¬λ̆ š ʹ͈ Î ǩ 

[

Ĺ 40 ʹ ͈ Ű ǩ Š L\ ˸ [Ə

6 . 7 š ɻ w \ ˸

̚ < Ĵ ß ÿ[ Ə  ) ğ o < ʘ ->š ɻ w š ζ X ¤ Ʊ Dě š ɻ wɲ ğ ˆ Έ * Ȃ i H ÿk Έ ?ŧ ˊ  ̦ ɻ š 4ŧ Đ 5 ɲ ğ * Ȃ ζ

ȇ Ò ģ ˌ ŝ ď ̌ Þ ɲ ğ ij k Έ ?ŧ ζ Ŗ Ϳ Ù º X ɻ + ̤ ̦ ĭ ɻ ̰ ̠ ²

¬ˆ Ω* Ȃ ę  ɲ ğ 4Ç ¬ 5$ ζ X ¤ ķ ĭ ɻ ̰ Ŏš 4v ͘5ğ ̰ 

. ζ ςķ ĭ ɻ ̰ v ͘

[

Ĺ 41 š ɻ w L\ ˸ [Ə

3 8

Ë ŝ [ ʐ ε

‰ Ə Ƭ Ƭ X ¤ Ģ ą ¿ E-mailΩĜ Κ Ĵ ß ó ʄ ¬λi H ɘ ͈ Ωħ ɯE-mail Ÿ ¶ + Y Į Ģ ą ʄ ¬λɃ ²ÿǻ Ɣ  ̆ š E-mailΩħ ɯŎDz ƪ Ʊ ²H ĵ ̌ ΩX

ɯɲ ģŰ  Ŏĵ Ǫ E-mail Client²H JavaMailñ¾ ƌ ̤ ˷ ˊ D Ů v õ SMTP Client

ȖPOP3 ClientΩ\˸ȇ Ò 1 Ǿ ÿǻ Ɣ ħ ɯE-mailΩæ ŭ u Ů ʹƊ Ωƻ Ʊ ģ

˫H ̲ ̚ ̶ ǻ Ɣ Ʊ i H ɘ ͈ ΩÿĴ ß  ħ ɯE-mail ɸ B [  ) ʄ ¬λÿħ ɯE-mailɄ̤ ʁ ¬ʡ Ωɼ \˸ˁ7 Ǥ º ʈ

Ǥ ʄ ¬λħ ɯE-mailΩȿ Ÿ ˁƋ ̜  řͅ ™ ρ ̊ ٚ ʈȆ P i [  i ă Û ģ˫μ Ʉ̜ Ω\˸i ó ɋ Õ N

ȁ ʄ ¬λÿƉ Ů O * H ĩ Ø ɯ̼ E-mailH ħ \˸Ȗš ɻ wͪ ʐ õ ğ o š

ɻ w* Ȃ ς* ħ ÑǑ v 0 ǟ ) ʄ ¬λʜ V Ǽ ư ̉Ñ

Ά ō & ϐ

[I]YOYO,Yahoo!˓ ˰ Ņ u ɡ - JavaΩ[ ×

http://tw.myblog.yahoo.com/jw!8bajdGGBAwN9fRfAC2Y8hg--/article?mid=6 &prev=7&next=5 [II] ΋ δ ̜ ·̫ Ä Ü I - JavaMail APIÚ O ¡ Ú ž ͣ 1 Ü

http://tw-box.com/bbs/simple/index.php?t202721.html [III]wayne,¬JavaMailˊ ʹ͈ ý 3 ̉Ñɯ̼ ɋ Õ ,(2001-09-04). [IV] littlechenchenΩρ ? - ̉Ñ͒ ͽ SMTP/IMAPʨ [ ×

http://blog.csdn.net/littlechenchen/archive/2009/03/13/3987748.aspx

3 9