Ê×Ò³ | Óʼþ×ÊѶ | ¼¼Êõ½Ì³Ì | ½â¾ö·½°¸ | ²úÆ·ÆÀ²â | ÓʼþÈ˲Š| Óʼþ²©¿Í | ÓʼþϵͳÂÛ̳ | Èí¼þÏÂÔØ | ÓʼþÖÜ¿¯ | ÈȵãרÌâ | ¹¤¾ß
ÍøÂç¼¼Êõ | ²Ù×÷ϵͳ | Óʼþϵͳ | ¿Í»§¶Ë | µç×ÓÓÊÏä | ·´À¬»øÓʼþ | Óʼþ°²È« | ÓʼþÓªÏú | ÒÆ¶¯µçÓÊ | ÓʼþÈí¼þÏÂÔØ | µç×ÓÊéÏÂÔØ

Óʼþ·þÎñÆ÷

¼¼ÊõÇ°ÑØ | Exchange | Domino | Sendmail | Postfix | Qmail | IMail | MDaemon | Foxmail | James | Kerio | JavaMail | WinMail | Winwebmail | Merak | CMailServer | ½ðµÑ | ÆäËü | ÓʼþÓ뿪·¢ |
Ê×Ò³ > Óʼþ·þÎñÆ÷ > JavaMail > JavaMail APIϸ½ÚÏêϸ½âÎö´óÈ« > ÕýÎÄ

JavaMail APIϸ½ÚÏêϸ½âÎö´óÈ«

³ö´¦£ºMatrix ×÷Õߣºcleverpig ʱ¼ä£º2006-1-5 15:49:00

ÕªÒª:

JavaMail APIÊǶÁÈ¡¡¢×«Ð´¡¢·¢Ë͵ç×ÓÐÅÏ¢µÄ¿ÉÑ¡°ü¡£ÎÒÃÇ¿ÉÓÃËüÀ´½¨Á¢ÈçEudora¡¢Foxmail¡¢MS Outlook ExpressÒ»°ãµÄÓʼþÓû§´úÀí³ÌÐò£¨Mail User Agent,¼ò³ÆMUA£©¡£ÈÃÎÒÃÇ¿´¿´JavaMail APIÊÇÈçºÎÌṩÐÅÏ¢·ÃÎʹ¦Äܵİɣ¡JavaMail API±»Éè¼ÆÓÃÓÚÒÔ²»ÒÀÀµÐ­ÒéµÄ·½Ê½È¥·¢ËͺͽÓÊÕµç×ÓÐÅÏ¢£¬ÎÄÖÐ×ÅÖØ£ºÈçºÎÒÔ²»ÒÀÀµÓÚЭÒéµÄ·½Ê½·¢ËͽÓÊÕµç×ÓÐÅÏ¢£¬ÕâÒ²ÊDZ¾ÎÄËùÒªÃèÊöµÄ.
 
°æÈ¨ÉùÃ÷£º±¾ÎÄ¿ÉÒÔ×ÔÓÉ×ªÔØ£¬×ªÔØÊ±ÇëÎñ±ØÒÔ³¬Á´½ÓÐÎʽ±êÃ÷ÎÄÕÂԭʼ³ö´¦ºÍ×÷ÕßÐÅÏ¢¼°±¾ÉùÃ÷
×÷Õß:cleverpig(×÷ÕßµÄBlog:http://blog.matrix.org.cn/page/cleverpig)
Ô­ÎÄ:http://www.matrix.org.cn/resource/article/44/44101_JavaMail.html
¹Ø¼ü×Ö:java,mail,pop,smtp

Ò»¡¢JavaMail API¼ò½é
JavaMail APIÊǶÁÈ¡¡¢×«Ð´¡¢·¢Ë͵ç×ÓÐÅÏ¢µÄ¿ÉÑ¡°ü¡£ÎÒÃÇ¿ÉÓÃËüÀ´½¨Á¢ÈçEudora¡¢Foxmail¡¢MS Outlook ExpressÒ»°ãµÄÓʼþÓû§´úÀí³ÌÐò£¨Mail User Agent,¼ò³ÆMUA£©¡£¶ø²»ÊÇÏñsendmail»òÕ߯äËüµÄÓʼþ´«Êä´úÀí£¨Mail Transfer Agent£¬¼ò³ÆMTA£©³ÌÐòÄÇÑù¿ÉÒÔ´«ËÍ¡¢µÝËÍ¡¢×ª·¢Óʼþ¡£´ÓÁíÍâÒ»¸ö½Ç¶ÈÀ´¿´£¬ÎÒÃÇÕâЩµç×ÓÓʼþÓû§ÈÕ³£ÓÃMUA³ÌÐòÀ´¶ÁдÓʼþ£¬¶øMUAÒÀÀµ×ÅMTA´¦ÀíÓʼþµÄµÝËÍ¡£
ÔÚÇå³þÁ˵½MUAÓëMTAÖ®¼äµÄ¹ØÏµºó£¬ÈÃÎÒÃÇ¿´¿´JavaMail APIÊÇÈçºÎÌṩÐÅÏ¢·ÃÎʹ¦Äܵİɣ¡JavaMail API±»Éè¼ÆÓÃÓÚÒÔ²»ÒÀÀµÐ­ÒéµÄ·½Ê½È¥·¢ËͺͽÓÊÕµç×ÓÐÅÏ¢£¬Õâ¸öAPI±»·ÖΪÁ½´ó²¿·Ö£º

»ù±¾¹¦ÄÜ£ºÈçºÎÒÔ²»ÒÀÀµÓÚЭÒéµÄ·½Ê½·¢ËͽÓÊÕµç×ÓÐÅÏ¢£¬ÕâÒ²ÊDZ¾ÎÄËùÒªÃèÊöµÄ£¬²»¹ýÔÚÏÂÎÄÖУ¬´ó¼Ò½«¿´µ½ÕâÖ»ÊÇÒ»ÏáÇéÔ¸¶øÒÑ¡£
µÚ¶þ¸ö²¿·ÖÔòÊÇÒÀÀµÌض¨Ð­ÒéµÄ£¬±ÈÈçSMTP¡¢POP¡¢IMAP¡¢NNTPЭÒé¡£ÔÚÕⲿ·ÖµÄJavaMail APIÊÇΪÁ˺ͷþÎñÆ÷ͨѶ£¬²¢²»ÔÚ±¾ÎĵÄÄÚÈÝÖС£

¶þ¡¢Ïà¹ØÐ­ÒéÒ»ÀÀ
ÔÚÎÒÃDz½ÈëJavaMail API֮ǰ£¬ÏÈ¿´Ò»ÏÂAPIËùÉæ¼°µÄЭÒé¡£ÒÔϱãÊÇ´ó¼ÒÈÕ³£ËùÖª¡¢ËùÀÖÓÚʹÓõÄ4´óÐÅÏ¢´«ÊäЭÒ飺
SMTP
POP
IMAP
MIME
µ±È»£¬ÉÏÃæµÄ4¸öЭÒ飬²¢²»ÊÇÈ«²¿£¬»¹ÓÐNNTPºÍÆäËüһЩЭÒé¿ÉÓÃÓÚ´«ÊäÐÅÏ¢£¬µ«ÊÇÓÉÓÚ²»³£Óõ½£¬ËùÒÔ±¾Îı㲻Ìá¼°ÁË¡£Àí½âÕâ4¸ö»ù±¾µÄЭÒéÓÐÖúÓÚÎÒÃǸüºÃµÄʹÓÃJavaMail API¡£È»¶øJavaMail APIÊDZ»Éè¼ÆÎªÓëЭÒéÎ޹صģ¬Ä¿Ç°ÎÒÃDz¢²»Äܿ˷þÕâЩЭÒéµÄÊø¸¿¡£È·ÇеÄ˵£¬Èç¹ûÎÒÃÇʹÓõŦÄܲ¢²»±»ÎÒÃÇÑ¡ÔñµÄЭÒéÖ§³Ö£¬ÄÇôJavaMail API²¢²»¿ÉÄÜÈçħÊõʦһÑùÉñÆæµÄ¸³ÓèÎÒÃÇÕâÖÖÄÜÁ¦¡£

1£®SMTP
¼òµ¥Óʼþ´«ÊäЭÒ鶨ÒåÁ˵ÝËÍÓʼþµÄ»úÖÆ¡£ÔÚÏÂÎÄÖУ¬ÎÒÃǽ«Ê¹ÓûùÓÚJava-MailµÄ³ÌÐòÓ빫˾»òÕßISPµÄSMTP·þÎñÆ÷½øÐÐͨѶ¡£Õâ¸öSMTP·þÎñÆ÷½«Óʼþת·¢µ½½ÓÊÕÕßµÄSMTP·þÎñÆ÷£¬Ö±ÖÁ×îºó±»½ÓÊÕÕßͨ¹ýPOP»òÕßIMAPЭÒé»ñÈ¡¡£Õâ²¢²»ÐèÒªSMTP·þÎñÆ÷ʹÓÃÖ§³ÖÊÚȨµÄÓʼþת·¢£¬µ«ÊÇÈ´µÄȷҪעÒâSMTP·þÎñÆ÷µÄÕýÈ·ÉèÖã¨SMTP·þÎñÆ÷µÄÉèÖÃÓëJavaMail APIÎ޹أ©¡£

2£®POP
POPÊÇÒ»ÖÖÓʾÖЭÒ飬ĿǰΪµÚ3¸ö°æ±¾£¬¼´ÖÚËùÖÜÖªµÄPOP3¡£POP¶¨ÒåÁËÒ»ÖÖÓû§ÈçºÎ»ñµÃÓʼþµÄ»úÖÆ¡£Ëü¹æ¶¨ÁËÿ¸öÓû§Ê¹ÓÃÒ»¸öµ¥¶ÀµÄÓÊÏä¡£´ó¶àÊýÈËÔÚʹÓÃPOPʱËùÊìϤµÄ¹¦Äܲ¢·Ç¶¼±»Ö§³Ö£¬ÀýÈç²é¿´ÓÊÏäÖеÄÐÂÓʼþÊýÁ¿¡£¶øÕâ¸ö¹¦ÄÜÊÇ΢ÈíµÄOutlookÄÚ½¨µÄ£¬ÄÇô¾Í˵Ã÷΢ÈíOutlookÖ®ÀàµÄÓʼþ¿Í»§¶ËÈí¼þÊÇͨ¹ý²éѯ×î½üÊÕµ½µÄÓʼþÀ´¼ÆËãÐÂÓʼþµÄÊýÁ¿À´ÊµÏÖÇ°ÃæËù˵µÄ¹¦ÄÜ¡£Òò´ËÔÚÎÒÃÇʹÓÃJavaMail APIʱÐèҪעÒ⣬µ±ÐèÒª»ñµÃÈçÇ°ÃæËù½²µÄÐÂÓʼþÊýÁ¿Ö®ÀàµÄÐÅϢʱ£¬ÎÒÃDz»µÃ²»×Ô¼º½øÐмÆËã¡£

3£®IMAP
IMAPʹÓÃÔÚ½ÓÊÕÐÅÏ¢µÄ¸ß¼¶Ð­Ò飬Ŀǰ°æ±¾ÎªµÚ4°æ£¬ËùÒÔÒ²±»³ÆÎªIMAP4¡£ÐèҪעÒâµÄÊÇÔÚʹÓÃIMAPʱ£¬Óʼþ·þÎñÆ÷±ØÐëÖ§³Ö¸ÃЭÒé¡£´ÓÕâ¸ö·½Ãæ½²£¬ÎÒÃDz¢²»ÄÜÍêȫʹÓÃIMAPÀ´Ìæ´úPOP£¬²»ÄÜÆÚ´ýIMAPÔÚÈκεط½¶¼±»Ö§³Ö¡£¼ÙÈçÓʼþ·þÎñÆ÷Ö§³ÖIMAP£¬ÄÇôÎÒÃǵÄÓʼþ³ÌÐò½«Äܹ»¾ßÓÐÒÔϱ»IMAPËùÖ§³ÖµÄÌØÐÔ£ºÃ¿¸öÓû§ÔÚ·þÎñÆ÷ÉϿɾßÓжà¸öĿ¼£¬ÕâЩĿ¼ÄÜÔÚ¶à¸öÓû§Ö®¼ä¹²Ïí¡£
ÆäÓëPOPÏà±È¸ß¼¶Ö®´¦ÏÔ¶øÒ×¼û£¬µ«ÊÇÔÚ³¢ÊÔ²ÉÈ¡IMAPʱ£¬ÎÒÃÇÈÏʶµ½Ëü²¢²»ÊÇÊ®·ÖÍêÃÀµÄ£ºÓÉÓÚIMAPÐèÒª´ÓÆäËü·þÎñÆ÷ÉϽÓÊÕÐÂÐÅÏ¢£¬½«ÕâЩÐÅÏ¢µÝË͸øÓû§£¬Î¬»¤Ã¿¸öÓû§µÄ¶à¸öĿ¼£¬ÕⶼΪÓʼþ·þÎñÆ÷´øÀ´Á˸߸ºÔØ¡£²¢ÇÒIMAPÓëPOPµÄÒ»¸ö²»Í¬Ö®´¦ÊÇPOPÓû§ÔÚ½ÓÊÕÓʼþʱ½«´ÓÓʼþ·þÎñÆ÷ÉÏÏÂÔØÓʼþ£¬¶øIMAPÔÊÐíÓû§Ö±½Ó·ÃÎÊÓʼþĿ¼£¬ËùÒÔÔÚÓʼþ·þÎñÆ÷½øÐб¸·Ý×÷ҵʱ£¬ÓÉÓÚÿ¸ö³¤ÆÚʹÓôËÓʼþϵͳµÄÓû§ËùÓõÄÓʼþĿ¼»áÕ¼ÓкܴóµÄ¿Õ¼ä£¬Õ⽫ֱ½Óµ¼ÖÂÓʼþ·þÎñÆ÷ÉÏ´ÅÅ̿ռ䱩ÕÇ¡£

4£®MIME
MIME²¢²»ÊÇÓÃÓÚ´«ËÍÓʼþµÄЭÒ飬Ëü×÷Ϊ¶àÓÃ;ÓʼþµÄÀ©Õ¹¶¨ÒåÁËÓʼþÄÚÈݵĸñʽ£ºÐÅÏ¢¸ñʽ¡¢¸½¼þ¸ñʽµÈµÈ¡£Ò»Ð©RFC±ê×¼¶¼Éæ¼°ÁËMIME£ºRFC 822, RFC 2045, RFC 2046, RFC 2047£¬ÓÐÐËȤµÄMatrixer¿ÉÒÔÔĶÁһϡ£¶ø×÷ΪJavaMail APIµÄ¿ª·¢Õߣ¬ÎÒÃDz¢²»Ðè¹ØÐÄÕâЩ¸ñʽ¶¨Ò壬µ«ÊÇÕâЩ¸ñʽ±»ÓÃÔÚÁ˳ÌÐòÖС£

5£®NNTPºÍÆäËüµÄµÚÈý·½Ð­Òé
ÕýÒòΪJavaMail APIÔÚÉè¼ÆÊ±¿¼Âǵ½ÓëµÚÈý·½Ð­ÒéʵÏÖÌṩÉÌÖ®¼äµÄ·ÖÀ룬¹ÊÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µÄÌí¼ÓһЩµÚÈý·½Ð­Òé¡£SUNά»¤×ÅÒ»¸öµÚÈý·½Ð­ÒéʵÏÖÌṩÉ̵ÄÁÐ±í£ºhttp://java.sun.com/products/javamail/Third_Party.html£¬Í¨¹ý´ËÁбíÎÒÃÇ¿ÉÒÔÕÒµ½ËùÐèÒªµÄ¶øÓÖ²»±»SUNÌṩ֧³ÖµÄµÚÈý·½Ð­Ò飺±ÈÈçNNTPÕâ¸öÐÂÎÅ×éЭÒéºÍS/MIMEÕâ¸ö°²È«µÄMIMEЭÒé¡£

Èý¡¢°²×°
1£®°²×°JavaMail
ΪÁËʹÓÃJavaMail API£¬ÐèÒª´Óhttp://java.sun.com/products/javamail/downloads/index.htmlÏÂÔØÎļþÃû¸ñʽΪjavamail-[version].zipµÄÎļþ£¨Õâ¸öÎļþÖаüÀ¨ÁËJavaMailʵÏÖ£©£¬²¢½«ÆäÖеÄmail.jarÎļþÌí¼Óµ½CLASSPATHÖС£Õâ¸öʵÏÖÌṩÁ˶ÔSMTP¡¢IMAP4¡¢POP3µÄÖ§³Ö¡£
×¢Ò⣺ÔÚ°²×°JavaMailʵÏÖÖ®ºó£¬ÎÒÃǽ«ÔÚdemoĿ¼Öз¢ÏÖÐí¶àÓÐȤµÄ¼òµ¥ÊµÀý³ÌÐò¡£
ÔÚ°²×°ÁËJavaMailÖ®ºó,ÎÒÃÇ»¹ÐèÒª°²×°JavaBeans Activation Framework£¬ÒòΪÕâ¸ö¿ò¼ÜÊÇJavaMail APIËùÐèÒªµÄ¡£Èç¹ûÎÒÃÇʹÓÃJ2EEµÄ»°£¬ÄÇôÎÒÃDz¢ÎÞÐèµ¥¶ÀÏÂÔØJavaMail£¬ÒòΪËü´æÔÚÓÚJ2EE.jarÖУ¬Ö»Ð轫J2EE.jar¼ÓÈëµ½CLASSPATH¼´¿É¡£

2£®°²×°JavaBeans Activation Framework
´Óhttp://java.sun.com/products/javabeans/glasgow/jaf.htmlÏÂÔØJavaBeans Activation Framework£¬²¢½«ÆäÌí¼Óµ½CLASSPATHÖС£´Ë¿ò¼ÜÔö¼ÓÁ˶ÔÈκÎÊý¾Ý¿éµÄ·ÖÀà¡¢ÒÔ¼°¶ÔËüÃǵĴ¦ÀíµÄÌØÐÔ¡£ÕâÐ©ÌØÐÔÊÇJavaMail APIÐèÒªµÄ¡£ËäÈ»ÌýÆðÀ´ÕâÐ©ÌØÐԷdz£Ä£ºý£¬µ«ÊÇËü¶ÔÓÚÎÒÃǵÄJavaMail APIÀ´ËµÖ»ÊÇÌṩÁË»ù±¾µÄMIMEÀàÐÍÖ§³Ö¡£
µ½´ËΪֹ£¬ÎÒÃÇÓ¦µ±°Ñmail.jarºÍactivation.jar¶¼Ìí¼Óµ½ÁËCLASSPATHÖС£
µ±È»Èç¹û´Ó·½±ãµÄ½Ç¶È½²£¬Ö±½Ó°ÑÕâÁ½¸öJarÎļþ¸´ÖƵ½JREĿ¼µÄlib/extĿ¼ÖÐÒ²¿ÉÒÔ¡£

ËÄ¡¢³õ´ÎÈÏʶJavaMail API
1£®Á˽âÎÒÃǵÄJavaMail»·¾³
A£®×ÝÀÀJavaMailºËÐÄÀà½á¹¹
´ò¿ªJavaMail.jarÎļþ£¬ÎÒÃǽ«·¢ÏÖÔÚjavax.mailµÄ°üÏÂÃæ´æÔÚ×ÅһЩºËÐÄÀࣺSession¡¢Message¡¢Address¡¢Authenticator¡¢Transport¡¢Store¡¢Folder¡£¶øÇÒÔÚjavax.mail.internet°üÖл¹ÓÐһЩ³£ÓõÄ×ÓÀà¡£
B£®Session
SessionÀඨÒåÁË»ù±¾µÄÓʼþ»á»°¡£¾ÍÏñHttp»á»°ÄÇÑù£¬ÎÒÃǽøÐÐÊÕ·¢ÓʼþµÄ¹¤×÷¶¼ÊÇ»ùÓÚÕâ¸ö»á»°µÄ¡£Session¶ÔÏóÀûÓÃÁËjava.util.Properties¶ÔÏó»ñµÃÁËÓʼþ·þÎñÆ÷¡¢Óû§Ãû¡¢ÃÜÂëÐÅÏ¢ºÍÕû¸öÓ¦ÓóÌÐò¶¼ÒªÊ¹Óõ½µÄ¹²ÏíÐÅÏ¢¡£
SessionÀàµÄ¹¹Ôì·½·¨ÊÇ˽Óеģ¬ËùÒÔÎÒÃÇ¿ÉÒÔʹÓÃSessionÀàÌṩµÄgetDefaultInstance()Õâ¸ö¾²Ì¬¹¤³§·½·¨»ñµÃÒ»¸öĬÈϵÄSession¶ÔÏó£º

Properties props = new Properties();
// fill props with any information
Session session = Session.getDefaultInstance(props, null);

»òÕßʹÓÃgetInstance()Õâ¸ö¾²Ì¬¹¤³§·½·¨»ñµÃ×Ô¶¨ÒåµÄSession:

Properties props = new Properties();
// fill props with any information
Session session = Session.getInstance(props, null);

´ÓÉÏÃæµÄÁ½¸öÀý×ÓÖв»ÄÑ·¢ÏÖ£¬getDefaultInstance()ºÍgetInstance()·½·¨µÄµÚ¶þ¸ö²ÎÊý¶¼ÊÇnull£¬ÕâÊÇÒòΪÔÚÉÏÃæµÄÀý×ÓÖв¢Ã»ÓÐʹÓõ½ÓʼþÊÚȨ£¬ÏÂÎÄÖн«¶ÔÊÚȨ½øÐÐÏêϸ½éÉÜ¡£
´ÓºÜ¶àµÄʵÀý¿´£¬ÔÚ¶Ômail server½øÐзÃÎʵĹý³ÌÖÐʹÓù²ÏíµÄSessionÊÇ×ã¹»µÄ£¬¼´Ê¹Êǹ¤×÷ÔÚ¶à¸öÓû§ÓÊÏäµÄģʽÏÂÒ²²»ÀýÍâ¡£

C£®Message
µ±ÎÒÃǽ¨Á¢ÁËSession¶ÔÏóºó£¬±ã¿ÉÒÔ±»·¢Ë͵Ĺ¹ÔìÐÅÏ¢ÌåÁË¡£ÔÚÕâÀïSUNÌṩÁËMessageÀàÐÍÀ´°ïÖú¿ª·¢ÕßÍê³ÉÕâÏ×÷¡£ÓÉÓÚMessageÊÇÒ»¸ö³éÏóÀ࣬´ó¶àÊýÇé¿öÏ£¬ÎÒÃÇʹÓÃjavax.mail.internet.MimeMessageÕâ¸ö×ÓÀ࣬¸ÃÀàÊÇʹÓÃMIMEÀàÐÍ¡¢MIMEÐÅϢͷµÄÓÊÏäÐÅÏ¢¡£ÐÅϢͷֻÄÜʹÓÃUS-ASCII×Ö·û£¬¶ø·ÇASCII×Ö·û½«Í¨¹ý±àÂëת»»ÎªASCIIµÄ·½Ê½Ê¹Óá£
ΪÁ˽¨Á¢Ò»¸öMimeMessage¶ÔÏó£¬ÎÒÃDZØÐ뽫Session¶ÔÏó×÷ΪMimeMessage¹¹Ôì·½·¨µÄ²ÎÊý´«È룺

MimeMessage message = new MimeMessage(session);

×¢Ò⣺¶ÔÓÚMimeMessageÀàÀ´½²´æÔÚ×ŶàÖÖ¹¹Ôì·½·¨£¬±ÈÈçʹÓÃÊäÈëÁ÷×÷Ϊ²ÎÊýµÄ¹¹Ôì·½·¨¡£

ÔÚ½¨Á¢ÁËMimeMessage¶ÔÏóºó£¬ÎÒÃÇÐèÒªÉèÖÃËüµÄ¸÷¸öpart£¬¶ÔÓÚMimeMessageÀàÀ´Ëµ£¬ÕâЩpart¾ÍÊÇMimePart½Ó¿Ú¡£×î»ù±¾µÄÉèÖÃÐÅÏ¢ÄÚÈݵķ½·¨¾ÍÊÇͨ¹ý±íʾÐÅÏ¢ÄÚÈݺÍÃ×ôÀàÐ͵IJÎÊýµ÷ÓÃsetContent()·½·¨£º

message.setContent("Hello", "text/plain");

È»¶ø£¬Èç¹ûÎÒÃÇËùʹÓõÄMimeMessageÖÐÐÅÏ¢ÄÚÈÝÊÇÎı¾µÄ»°£¬ÎÒÃDZã¿ÉÒÔÖ±½ÓʹÓÃsetText()·½·¨À´·½±ãµÄÉèÖÃÎı¾ÄÚÈÝ¡£

message.setText("Hello");

Ç°ÃæËù½²µÄÁ½ÖÖ·½·¨£¬¶ÔÓÚÎı¾ÐÅÏ¢£¬ºóÕ߸üΪºÏÊÊ¡£¶ø¶ÔÓÚÆäËüµÄһЩÐÅÏ¢ÀàÐÍ£¬±ÈÈçHTMLÐÅÏ¢£¬ÔòҪʹÓÃǰÕß¡£
±ðÍü¼ÇÁË£¬Ê¹ÓÃsetSubject()·½·¨¶ÔÓʼþÉèÖÃÓʼþÖ÷Ì⣺

message.setSubject("First");


D£®Address
µ½ÕâÀÎÒÃÇÒѾ­½¨Á¢ÁËSessionºÍMessage£¬ÏÂÃæ½«½éÉÜÈçºÎʹÓÃÓʼþµØÖ·ÀࣺAddress¡£ÏñMessageÒ»Ñù£¬AddressÀàÒ²ÊÇÒ»¸ö³éÏóÀ࣬ËùÒÔÎÒÃǽ«Ê¹ÓÃjavax.mail.internet.InternetAddressÕâ¸ö×ÓÀà¡£
ͨ¹ý´«Èë´ú±íÓʼþµØÖ·µÄ×Ö·û´®£¬ÎÒÃÇ¿ÉÒÔ½¨Á¢Ò»¸öÓʼþµØÖ·Àࣺ

Address address = new InternetAddress("president@whitehouse.gov");

Èç¹ûÒªÔÚÓʼþµØÖ·ºóÃæÔö¼ÓÃû×ֵϰ£¬¿ÉÒÔͨ¹ý´«µÝÁ½¸ö²ÎÊý£º´ú±íÓʼþµØÖ·ºÍÃû×ÖµÄ×Ö·û´®À´½¨Á¢Ò»¸ö¾ßÓÐÓʼþµØÖ·ºÍÃû×ÖµÄÓʼþµØÖ·Àࣺ

Address address = new InternetAddress("president@whitehouse.gov", "George Bush");

±¾ÎÄÔÚÕâÀïËù½²µÄÓʼþµØÖ·ÀàÊÇΪÁËÉèÖÃÓʼþÐÅÏ¢µÄ·¢ÐÅÈ˺ÍÊÕÐÅÈ˶ø×¼±¸µÄ£¬ÔÚ½¨Á¢ÁËÓʼþµØÖ·Ààºó£¬ÎÒÃÇͨ¹ýmessageµÄsetFrom()ºÍsetReplyTo()Á½ÖÖ·½·¨ÉèÖÃÓʼþµÄ·¢ÐÅÈË£º

message.setFrom(address);
message.setReplyTo(address);

ÈôÔÚÓʼþÖдæÔÚ¶à¸ö·¢ÐÅÈ˵ØÖ·£¬ÎÒÃÇ¿ÉÓÃaddForm()·½·¨Ôö¼Ó·¢ÐÅÈË£º

Address address[] = ...;
message.addFrom(address);

ΪÁËÉèÖÃÊÕÐÅÈË£¬ÎÒÃÇʹÓÃaddRecipient()·½·¨Ôö¼ÓÊÕÐÅÈË£¬´Ë·½·¨ÐèҪʹÓÃMessage.RecipientTypeµÄ³£Á¿À´Çø·ÖÊÕÐÅÈ˵ÄÀàÐÍ£º

message.addRecipient(type, address)

ÏÂÃæÊÇMessage.RecipientTypeµÄÈý¸ö³£Á¿:
Message.RecipientType.TO
Message.RecipientType.CC
Message.RecipientType.BCC
Òò´Ë£¬Èç¹ûÎÒÃÇÒª·¢ËÍÓʼþ¸ø×Üͳ£¬²¢·¢ÓÃÒ»¸ö¸±±¾¸øµÚÒ»·òÈ˵ϰ£¬ÏÂÃæµÄ·½·¨½«±»Óõ½£º

Address toAddress = new InternetAddress("vice.president@whitehouse.gov");
Address ccAddress = new InternetAddress("first.lady@whitehouse.gov");
message.addRecipient(Message.RecipientType.TO, toAddress);
message.addRecipient(Message.RecipientType.CC, ccAddress);

JavaMail API²¢Ã»ÓÐÌṩ¼ì²éÓʼþµØÖ·ÓÐЧÐԵĻúÖÆ¡£µ±È»ÎÒÃÇ¿ÉÒÔ×Ô¼ºÍê³ÉÕâ¸ö¹¦ÄÜ£ºÑéÖ¤ÓʼþµØÖ·µÄ×Ö·ûÊÇ·ñ°´ÕÕRFC822¹æ¶¨µÄ¸ñʽÊéд»òÕßͨ¹ýDNS·þÎñÆ÷ÉϵÄMX¼Ç¼ÑéÖ¤µÈ¡£

E£®Authenticator
Ïñjava.netÀàÄÇÑù£¬JavaMail APIͨ¹ýʹÓÃÊÚȨÕßÀࣨAuthenticator£©ÒÔÓû§Ãû¡¢ÃÜÂëµÄ·½Ê½·ÃÎÊÄÇЩÊܵ½±£»¤µÄ×ÊÔ´£¬ÔÚÕâÀï¡°×ÊÔ´¡±¾ÍÊÇÖ¸Óʼþ·þÎñÆ÷¡£ÔÚjavax.mail°üÖпÉÒÔÕÒµ½Õâ¸öJavaMailµÄÊÚȨÕßÀࣨAuthenticator£©¡£
ÔÚʹÓÃAuthenticatorÕâ¸ö³éÏóÀàʱ£¬ÎÒÃDZØÐë²ÉÓü̳иóéÏóÀàµÄ·½Ê½£¬²¢ÇҸü̳ÐÀà±ØÐë¾ßÓзµ»ØPasswordAuthentication¶ÔÏó£¨ÓÃÓÚ´æ´¢ÈÏ֤ʱҪÓõ½µÄÓû§Ãû¡¢ÃÜÂ룩getPasswordAuthentication()·½·¨¡£²¢ÇÒÒªÔÚSessionÖнøÐÐ×¢²á£¬Ê¹SessionÄܹ»Á˽âÔÚÈÏ֤ʱ¸ÃʹÓÃÄĸöÀà¡£
ÏÂÃæ´úÂëÆ¬¶ÏÖеÄMyAuthenticator¾ÍÊÇÒ»¸öAuthenticatorµÄ×ÓÀà¡£

Properties props = new Properties();
// fill props with any information
Authenticator auth = new MyAuthenticator();
Session session = Session.getDefaultInstance(props, auth);


F£®Transport
ÔÚ·¢ËÍÐÅϢʱ£¬TransportÀཫ±»Óõ½¡£Õâ¸öÀàʵÏÖÁË·¢ËÍÐÅÏ¢µÄЭÒ飨ͨ³ÆÎªSMTP£©£¬´ËÀàÊÇÒ»¸ö³éÏóÀ࣬ÎÒÃÇ¿ÉÒÔʹÓÃÕâ¸öÀàµÄ¾²Ì¬·½·¨send()À´·¢ËÍÏûÏ¢£º

Transport.send(message);

µ±È»£¬·½·¨ÊǶàÑùµÄ¡£ÎÒÃÇÒ²¿ÉÓÉSession»ñµÃÏàӦЭÒé¶ÔÓ¦µÄTransportʵÀý¡£²¢Í¨¹ý´«µÝÓû§Ãû¡¢ÃÜÂë¡¢Óʼþ·þÎñÆ÷Ö÷»úÃûµÈ²ÎÊý½¨Á¢ÓëÓʼþ·þÎñÆ÷µÄÁ¬½Ó£¬²¢Ê¹ÓÃsendMessage()·½·¨½«ÐÅÏ¢·¢ËÍ£¬×îºó¹Ø±ÕÁ¬½Ó£º

message.saveChanges(); // implicit with send()
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();

ÆÀÂÛ£ºÉÏÃæµÄ·½·¨ÊÇÒ»¸öºÜºÃµÄ·½·¨£¬ÓÈÆäÊÇÔÚÎÒÃÇÔÚͬһ¸öÓʼþ·þÎñÆ÷ÉÏ·¢ËͶà¸öÓʼþʱ¡£ÒòΪÕâʱÎÒÃǽ«ÔÚÁ¬½ÓÓʼþ·þÎñÆ÷ºóÁ¬Ðø·¢ËÍÓʼþ£¬È»ºóÔٹرյôÁ¬½Ó¡£send()Õâ¸ö»ù±¾µÄ·½·¨ÊÇÔÚÿ´Îµ÷ÓÃʱ½øÐÐÓëÓʼþ·þÎñÆ÷µÄÁ¬½ÓµÄ£¬¶ÔÓÚÔÚͬһ¸öÓʼþ·þÎñÆ÷ÉÏ·¢ËͶà¸öÓʼþÀ´½²¿ÉνµÍЧµÄ·½Ê½¡£
×¢Ò⣺Èç¹ûÐèÒªÔÚ·¢ËÍÓʼþ¹ý³ÌÖÐ¼à¿ØmailÃüÁîµÄ»°£¬¿ÉÒÔÔÚ·¢ËÍǰÉèÖÃdebug±êÖ¾£º

session.setDebug(true)¡£


G£®StoreºÍFolder
½ÓÊÕÓʼþºÍ·¢ËÍÓʼþºÜÀàËÆ¶¼ÒªÓõ½Session¡£µ«ÊÇÔÚ»ñµÃSessionºó£¬ÎÒÃÇÐèÒª´ÓSessionÖлñÈ¡ÌØ¶¨ÀàÐ͵ÄStore£¬È»ºóÁ¬½Óµ½Store£¬ÕâÀïµÄStore´ú±íÁË´æ´¢ÓʼþµÄÓʼþ·þÎñÆ÷¡£ÔÚÁ¬½ÓStoreµÄ¹ý³ÌÖУ¬¼«ÓпÉÄÜÐèÒªÓõ½Óû§Ãû¡¢ÃÜÂë»òÕßAuthenticator¡£

// Store store = session.getStore("imap");
Store store = session.getStore("pop3");
store.connect(host, username, password);

ÔÚÁ¬½Óµ½Storeºó£¬Ò»¸öFolder¶ÔÏó¼´Ä¿Â¼¶ÔÏó½«Í¨¹ýStoreµÄgetFolder()·½·¨±»·µ»Ø£¬ÎÒÃǿɴÓÕâ¸öFolderÖжÁÈ¡ÓʼþÐÅÏ¢£º

Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();

ÉÏÃæµÄÀý×ÓÊ×ÏÈ´ÓStoreÖлñµÃINBOXÕâ¸öFolder£¨¶ÔÓÚPOP3ЭÒéÖ»ÓÐÒ»¸öÃûΪINBOXµÄFolderÓÐЧ£©£¬È»ºóÒÔÖ»¶Á£¨Folder.READ_ONLY£©µÄ·½Ê½´ò¿ªFolder£¬×îºóµ÷ÓÃFolderµÄgetMessages()·½·¨µÃµ½Ä¿Â¼ÖÐËùÓÐMessageµÄÊý×é¡£

×¢Ò⣺¶ÔÓÚPOP3ЭÒéÖ»ÓÐÒ»¸öÃûΪINBOXµÄFolderÓÐЧ£¬¶ø¶ÔÓÚIMAPЭÒ飬ÎÒÃÇ¿ÉÒÔ·ÃÎʶà¸öFolder£¨ÏëÏëÇ°Ãæ½²µÄIMAPЭÒ飩¡£¶øÇÒSUNÔÚÉè¼ÆFolderµÄgetMessages()·½·¨Ê±²ÉÈ¡Á˺ÜÖÇÄܵķ½Ê½£ºÊ×ÏȽÓÊÕÐÂÓʼþÁÐ±í£¬È»ºóÔÙÐèÒªµÄʱºò£¨±ÈÈç¶ÁÈ¡ÓʼþÄÚÈÝ£©²Å´ÓÓʼþ·þÎñÆ÷¶ÁÈ¡ÓʼþÄÚÈÝ¡£
ÔÚ¶ÁÈ¡Óʼþʱ£¬ÎÒÃÇ¿ÉÒÔÓÃMessageÀàµÄgetContent()·½·¨½ÓÊÕÓʼþ»òÊÇwriteTo()·½·¨½«Óʼþ±£´æ£¬getContent()·½·¨Ö»½ÓÊÕÓʼþÄÚÈÝ£¨²»°üº¬ÓʼþÍ·£©£¬¶øwriteTo()·½·¨½«°üÀ¨ÓʼþÍ·¡£

System.out.println(((MimeMessage)message).getContent());

ÔÚ¶ÁÈ¡ÓʼþÄÚÈݺ󣬱ðÍü¼ÇÁ˹رÕFolderºÍStore¡£

folder.close(aBoolean);
store.close();

´«µÝ¸øFolder.close()·½·¨µÄboolean ÀàÐͲÎÊý±íʾÊÇ·ñÔÚɾ³ý²Ù×÷Óʼþºó¸üÐÂFolder¡£

H£®¼ÌÐøÏòǰ½ø£¡
ÔÚ½²½âÁËÒÔÉÏµÄÆß¸öJava MailºËÐÄÀඨÒåºÍÀí½âÁ˼òµ¥µÄ´úÂëÆ¬¶Ïºó£¬ÏÂÎĽ«Ïêϸ½²½âÔõÑùʹÓÃÕâЩÀàʵÏÖJavaMail APIËùÒªÍê³ÉµÄ¸ß¼¶¹¦ÄÜ¡£

Î塢ʹÓÃJavaMail API
ÔÚÃ÷È·ÁËJavaMail APIµÄºËÐIJ¿·ÖÈçºÎ¹¤×÷ºó£¬±¾È˽«´øÁì´ó¼ÒѧϰһЩʹÓÃJava Mail APIÈÎÎñ°¸Àý¡£
1£®·¢ËÍÓʼþ
ÔÚ»ñµÃÁËSessionºó£¬½¨Á¢²¢ÌîÈëÓʼþÐÅÏ¢£¬È»ºó·¢ËÍËüµ½Óʼþ·þÎñÆ÷¡£Õâ±ãÊÇʹÓÃJava Mail API·¢ËÍÓʼþµÄ¹ý³Ì£¬ÔÚ·¢ËÍÓʼþ֮ǰ£¬ÎÒÃÇÐèÒªÉèÖÃSMTP·þÎñÆ÷£ºÍ¨¹ýÉèÖÃPropertiesµÄmail.smtp.hostÊôÐÔ¡£

String host = ...;
String from = ...;
String to = ...;

// Get system properties
Properties props = System.getProperties();

// Setup mail server
props.put("mail.smtp.host", host);

// Get session
Session session = Session.getDefaultInstance(props, null);

// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
  new InternetAddress(to));
message.setSubject("Hello JavaMail");
message.setText("Welcome to JavaMail");
// Send message
Transport.send(message);

ÓÉÓÚ½¨Á¢ÓʼþÐÅÏ¢ºÍ·¢ËÍÓʼþµÄ¹ý³ÌÖпÉÄÜ»áÅ׳öÒì³££¬ËùÒÔÎÒÃÇÐèÒª½«ÉÏÃæµÄ´úÂë·ÅÈëµ½try-catch½á¹¹¿éÖС£

2£®½ÓÊÕÓʼþ
ΪÁËÔÚ¶ÁÈ¡Óʼþ£¬ÎÒÃÇ»ñµÃÁËsession£¬²¢ÇÒÁ¬½Óµ½ÁËÓÊÏäµÄÏàÓ¦store£¬´ò¿ªÏàÓ¦µÄFolder£¬È»ºóµÃµ½ÎÒÃÇÏëÒªµÄÓʼþ£¬µ±È»±ðÍü¼ÇÁËÔÚ½áÊøÊ±¹Ø±ÕÁ¬½Ó¡£

String host = ...;
String username = ...;
String password = ...;

// Create empty properties
Properties props = new Properties();

// Get session
Session session = Session.getDefaultInstance(props, null);

// Get the store
Store store = session.getStore("pop3");
store.connect(host, username, password);

// Get folder
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);

// Get directory
Message message[] = folder.getMessages();

for (int i=0, n=message.length; i<n; i++) {
   System.out.println(i + ": " + message[i].getFrom()[0]
     + "\t" + message[i].getSubject());
}

// Close connection
folder.close(false);
store.close();

ÉÏÃæµÄ´úÂëËù×÷µÄÊÇ´ÓÓÊÏäÖжÁȡÿ¸öÓʼþ£¬²¢ÇÒÏÔʾÓʼþµÄ·¢ÐÅÈ˵ØÖ·ºÍÖ÷Ìâ¡£´Ó¼¼Êõ½Ç¶È½²£¬ÕâÀï´æÔÚ×ÅÒ»¸öÒì³£µÄ¿ÉÄÜ£ºµ±·¢ÐÅÈ˵ØÖ·Îª¿Õʱ£¬getFrom()[0]½«Å׳öÒì³£¡£

ÏÂÃæµÄ´úÂëÆ¬¶ÏÓÐЧµÄ˵Ã÷ÁËÈçºÎ¶ÁÈ¡ÓʼþÄÚÈÝ£¬ÔÚÏÔʾÿ¸öÓʼþ·¢ÐÅÈ˺ÍÖ÷Ìâºó£¬½«³öÏÖÓû§Ìáʾ´Ó¶øµÃµ½Óû§ÊÇ·ñ¶ÁÈ¡¸ÃÓʼþµÄÈ·ÈÏ£¬Èç¹ûÊäÈëYESµÄ»°£¬ÎÒÃÇ¿ÉÓÃMessage.writeTo(java.io.OutputStream os)·½·¨½«ÓʼþÄÚÈÝÊä³öµ½¿ØÖÆÌ¨ÉÏ£¬¹ØÓÚMessage.writeTo()µÄ¾ßÌåÓ÷¨Çë¿´JavaMail API¡£

BufferedReader reader = new BufferedReader (
  new InputStreamReader(System.in));

// Get directory
Message message[] = folder.getMessages();
for (int i=0, n=message.length; i<n; i++) {
  System.out.println(i + ": " + message[i].getFrom()[0]
    + "\t" + message[i].getSubject());

  System.out.println("Do you want to read message? " +
    "[YES to read/QUIT to end]");
  String line = reader.readLine();
  if ("YES".equals(line)) {
    message[i].writeTo(System.out);
  } else if ("QUIT".equals(line)) {
    break;
  }
}


3£®É¾³ýÓʼþºÍ±êÖ¾
ÉèÖÃÓëmessageÏà¹ØµÄFlagsÊÇɾ³ýÓʼþµÄ³£Ó÷½·¨¡£ÕâЩFlags±íʾÁËһЩϵͳ¶¨ÒåºÍÓû§¶¨ÒåµÄ²»Í¬×´Ì¬¡£ÔÚFlagsÀàµÄÄÚ²¿ÀàFlagÖÐÔ¤¶¨ÒåÁËһЩ±êÖ¾£º
Flags.Flag.ANSWERED
Flags.Flag.DELETED
Flags.Flag.DRAFT
Flags.Flag.FLAGGED
Flags.Flag.RECENT
Flags.Flag.SEEN
Flags.Flag.USER
µ«ÐèÒªÔÚʹÓÃʱעÒâµÄ£º±êÖ¾´æÔÚ²¢·ÇÒâζ×ÅÕâ¸ö±êÖ¾±»ËùÓеÄÓʼþ·þÎñÆ÷ËùÖ§³Ö¡£ÀýÈ磬¶ÔÓÚɾ³ýÓʼþµÄ²Ù×÷£¬POPЭÒé²»Ö§³ÖÉÏÃæµÄÈκÎÒ»¸ö¡£ËùÒÔҪȷ¶¨ÄÄЩ±êÖ¾ÊDZ»Ö§³ÖµÄ¡ª¡ªÍ¨¹ý·ÃÎÊÒ»¸öÒѾ­´ò¿ªµÄFolder¶ÔÏóµÄgetPermanetFlags()·½·¨£¬Ëü½«·µ»Øµ±Ç°±»Ö§³ÖµÄFlagsÀà¶ÔÏó¡£
ɾ³ýÓʼþʱ£¬ÎÒÃÇ¿ÉÒÔÉèÖÃÓʼþµÄDELETED±êÖ¾£º

message.setFlag(Flags.Flag.DELETED, true);

µ«ÊÇÊ×ÏÈÒª²ÉÓÃREAD_WRITEµÄ·½Ê½´ò¿ªFolder£º

folder.open(Folder.READ_WRITE);

ÔÚ¶ÔÓʼþ½øÐÐɾ³ý²Ù×÷ºó¹Ø±ÕFolderʱ£¬ÐèÒª´«µÝÒ»¸ötrue×÷Ϊ¶Ôɾ³ýÓʼþµÄ²Á³ýÈ·ÈÏ¡£

folder.close(true);

FolderÀàÖÐÁíÒ»ÖÖÓÃÓÚɾ³ýÓʼþµÄ·½·¨expunge()ҲͬÑù¿Éɾ³ýÓʼþ£¬µ«ÊÇËü²¢²»ÎªsunÌṩµÄPOP3ʵÏÖÖ§³Ö£¬¶øÆäËüµÚÈý·½ÌṩµÄPOP3ʵÏÖÖ§³Ö»òÕß²¢²»Ö§³ÖÕâÖÖ·½·¨¡£
ÁíÍ⣬½éÉÜÒ»ÖÖ¼ì²éij¸ö±êÖ¾ÊÇ·ñ±»ÉèÖõķ½·¨£ºMessage.isSet(Flags.Flag flag)·½·¨£¬ÆäÖвÎÊýΪ±»¼ì²éµÄ±êÖ¾¡£

4£®ÓʼþÈÏÖ¤
ÎÒÃÇÔÚÇ°ÃæÒѾ­Ñ§»áÁËÈçºÎʹÓÃAuthenticatorÀàÀ´´úÌæÖ±½ÓʹÓÃÓû§ÃûºÍÃÜÂëÕâÁ½×Ö·û´®×÷ΪSession.getDefaultInstance()»òÕßSession.getInstance()·½·¨µÄ²ÎÊý¡£ÔÚÇ°ÃæµÄСÊÔÅ£µ¶ºó£¬ÏÖÔÚÎÒÃǽ«ÁË½âµ½È«ÃæÈÏʶһÏÂÓʼþÈÏÖ¤¡£
ÎÒÃÇÔÚ´ËÈ¡´úÁËÖ±½ÓʹÓÃÓʼþ·þÎñÆ÷Ö÷»úÃû¡¢Óû§Ãû¡¢ÃÜÂëÕâÈý¸ö×Ö·û´®×÷ΪÁ¬½Óµ½POP3 StoreµÄ·½Ê½£¬Ê¹Óô洢ÁËÓʼþ·þÎñÆ÷Ö÷»úÃûÐÅÏ¢µÄÊôÐÔÎļþ£¬²¢ÔÚ»ñµÃSessionʱ´«Èë×Ô¶¨ÒåµÄAuthenticatorʵÀý£º

// Setup properties
Properties props = System.getProperties();
props.put("mail.pop3.host", host);

// Setup authentication, get session
Authenticator auth = new PopupAuthenticator();
Session session = Session.getDefaultInstance(props, auth);

// Get the store
Store store = session.getStore("pop3");
store.connect();


PopupAuthenticatorÀà¼Ì³ÐÁ˳éÏóÀàAuthenticator£¬²¢ÇÒͨ¹ýÖØÔØAuthenticatorÀàµÄgetPasswordAuthentication()·½·¨·µ»ØPasswordAuthenticationÀà¶ÔÏó¡£¶øgetPasswordAuthentication()·½·¨µÄ²ÎÊýparamÊÇÒÔ¶ººÅ·Ö¸îµÄÓû§Ãû¡¢ÃÜÂë×é³ÉµÄ×Ö·û´®¡£

import javax.mail.*;
import java.util.*;

public class PopupAuthenticator extends Authenticator {

  public PasswordAuthentication getPasswordAuthentication(String param) {
    String username, password;

    StringTokenizer st = new StringTokenizer(param, ",");
    username = st.nextToken();
    password = st.nextToken();

    return new PasswordAuthentication(username, password);
  }

}


5£®»Ø¸´Óʼþ
»Ø¸´ÓʼþµÄ·½·¨ºÜ¼òµ¥£ºÊ¹ÓÃMessageÀàµÄreply()·½·¨£¬Í¨¹ýÅäÖûظ´ÓʼþµÄÊÕ¼þÈ˵ØÖ·ºÍÖ÷Ì⣨Èç¹ûûÓÐÌṩÖ÷ÌâµÄ»°£¬ÏµÍ³½«Ä¬ÈϽ«¡°Re£º¡±×÷ΪÓʼþµÄÖ÷Ì壩£¬ÕâÀï²»ÐèÒªÉèÖÃÈκεÄÓʼþÄÚÈÝ£¬Ö»Òª¸´ÖÆ·¢ÐÅÈË»òÕßreply-toµ½ÐµÄÊÕ¼þÈË¡£¶øreply()·½·¨ÖеÄboolean²ÎÊý±íʾÊÇ·ñ½«Óʼþ»Ø¸´¸ø·¢ËÍÕߣ¨²ÎÊýֵΪfalse£©£¬»òÊǻָ´¸øËùÓÐÈË£¨²ÎÊýֵΪtrue£©¡£
²¹³äһϣ¬reply-toµØÖ·ÐèÒªÔÚ·¢ÐÅʱʹÓÃsetReplyTo()·½·¨ÉèÖá£

MimeMessage reply = (MimeMessage)message.reply(false);
reply.setFrom(new InternetAddress("president@whitehouse.gov"));
reply.setText("Thanks");
Transport.send(reply);


6£®×ª·¢Óʼþ
ת·¢ÓʼþµÄ¹ý³Ì²»ÈçÇ°ÃæµÄ»Ø¸´ÓʼþÄÇÑù¼òµ¥£¬Ëü½«½¨Á¢Ò»¸öת·¢Óʼþ£¬Õâ²¢·ÇÒ»¸ö·½·¨¾ÍÄÜ×öµ½¡£
ÿ¸öÓʼþÊÇÓɶà¸ö²¿·Ö×é³É£¬Ã¿¸ö²¿·Ö³ÆÎªÒ»¸öÓʼþÌ岿·Ö£¬ÊÇÒ»¸öBodyPartÀà¶ÔÏ󣬶ÔÓÚMIMEÀàÐÍÓʼþÀ´½²¾ÍÊÇMimeBodyPartÀà¶ÔÏó¡£ÕâЩÓʼþÌå°üº¬ÔÚ³ÉΪMultipartµÄÈÝÆ÷ÖжÔÓÚMIMEÀàÐÍÓʼþÀ´½²¾ÍÊÇMimeMultiPartÀà¶ÔÏó¡£ÔÚת·¢Óʼþʱ£¬ÎÒÃǽ¨Á¢Ò»¸öÎÄ×ÖÓʼþÌ岿·ÖºÍÒ»¸ö±»×ª·¢µÄÎÄ×ÖÓʼþÌ岿·Ö£¬È»ºó½«ÕâÁ½¸öÓʼþÌå·Åµ½Ò»¸öMultipartÖС£ËµÃ÷һϣ¬¸´ÖÆÒ»¸öÓʼþÄÚÈݵ½ÁíÒ»¸öÓʼþµÄ·½·¨Êǽö¸´ÖÆËüµÄDataHandler£¨Êý¾Ý´¦ÀíÕߣ©¼´¿É¡£ÕâÊÇÓÉJavaBeans Activation Framework¶¨ÒåµÄÒ»¸öÀ࣬ËüÌṩÁ˶ÔÓʼþÄÚÈݵIJÙ×÷ÃüÁîµÄ·ÃÎÊ¡¢¹ÜÀíÁËÓʼþÄÚÈݲÙ×÷£¬ÊDz»Í¬µÄÊý¾ÝÔ´ºÍÊý¾Ý¸ñʽ֮¼äµÄÒ»ÖÂÐÔ½Ó¿Ú¡£

// Create the message to forward
Message forward = new MimeMessage(session);

// Fill in header
forward.setSubject("Fwd: " + message.getSubject());
forward.setFrom(new InternetAddress(from));
forward.addRecipient(Message.RecipientType.TO,
  new InternetAddress(to));

// Create your new message part
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(
  "Here you go with the original message:\n\n");

// Create a multi-part to combine the parts
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

// Create and fill part for the forwarded content
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(message.getDataHandler());

// Add part to multi part
multipart.addBodyPart(messageBodyPart);

// Associate multi-part with message
forward.setContent(multipart);

// Send message
Transport.send(forward);


7£®Ê¹Óø½¼þ
¸½¼þ×÷ΪÓëÓʼþÏà¹ØµÄ×ÊÔ´¾­³£ÒÔÎı¾¡¢±í¸ñ¡¢Í¼Æ¬µÈ¸ñʽ³öÏÖ£¬ÈçÁ÷ÐеÄÓʼþ¿Í»§¶ËÒ»Ñù£¬ÎÒÃÇ¿ÉÒÔÓÃJavaMail API´ÓÓʼþÖлñÈ¡¸½¼þ»òÊÇ·¢ËÍ´øÓи½¼þµÄÓʼþ¡£

A£®·¢ËÍ´øÓи½¼þµÄÓʼþ
·¢ËÍ´øÓи½¼þµÄÓʼþµÄ¹ý³ÌÓÐЩÀàËÆ×ª·¢Óʼþ£¬ÎÒÃÇÐèÒª½¨Á¢Ò»¸öÍêÕûÓʼþµÄ¸÷¸öÓʼþÌ岿·Ö£¬ÔÚµÚÒ»¸ö²¿·Ö£¨¼´ÎÒÃǵÄÓʼþÄÚÈÝÎÄ×Ö£©ºó£¬Ôö¼ÓÒ»¸ö¾ßÓÐDataHandlerµÄ¸½¼þ¶ø²»ÊÇÔÚת·¢ÓʼþʱÄÇÑù¸´ÖƵÚÒ»¸ö²¿·ÖµÄDataHandler¡£

Èç¹ûÎÒÃǽ«Îļþ×÷Ϊ¸½¼þ·¢ËÍ£¬ÄÇôҪ½¨Á¢FileDataSourceÀàÐ͵ĶÔÏó×÷Ϊ¸½¼þÊý¾ÝÔ´£»Èç¹û´ÓURL¶ÁÈ¡Êý¾Ý×÷Ϊ¸½¼þ·¢ËÍ£¬ÄÇô½«Òª½¨Á¢URLDataSourceÀàÐ͵ĶÔÏó×÷Ϊ¸½¼þÊý¾ÝÔ´¡£

È»ºó½«Õâ¸öÊý¾ÝÔ´£¨FileDataSource»òÊÇURLDataSource£©¶ÔÏó×÷ΪDataHandlerÀ๹Ôì·½·¨µÄ²ÎÊý´«È룬´Ó¶ø½¨Á¢Ò»¸öDataHandler¶ÔÏó×÷ΪÊý¾ÝÔ´µÄDataHandler¡£

½Ó׎«Õâ¸öDataHandlerÉèÖÃΪÓʼþÌ岿·ÖµÄDataHandler¡£ÕâÑù¾ÍÍê³ÉÁËÓʼþÌåÓ븽¼þÖ®¼äµÄ¹ØÁª¹¤×÷£¬ÏÂÃæµÄ¹¤×÷¾ÍÊÇBodyPartµÄsetFileName()·½·¨ÉèÖø½¼þÃûΪԭÎļþÃû¡£

×îºó½«Á½¸öÓʼþÌå·ÅÈëµ½MultipartÖУ¬ÉèÖÃÓʼþÄÚÈÝΪÕâ¸öÈÝÆ÷Multipart£¬·¢ËÍÓʼþ¡£

// Define message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
  new InternetAddress(to));
message.setSubject("Hello JavaMail Attachment");

// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();

// Fill the message
messageBodyPart.setText("Pardon Ideas");

Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

// Part two is attachment
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);

// Put parts in message
message.setContent(multipart);

// Send the message
Transport.send(message);

Èç¹ûÎÒÃÇʹÓÃservletʵÏÖ·¢ËÍ´øÓи½¼þµÄÓʼþ£¬Ôò±ØÐëÉÏ´«¸½¼þ¸øservlet£¬ÕâʱÐèҪעÒâÌá½»Ò³ÃæformÖжԱàÂëÀàÐ͵ÄÉèÖÃӦΪmultipart/form-data¡£

<FORM ENCTYPE="multipart/form-data"
    method=post action="/myservlet">
  <INPUT TYPE="file" NAME="thefile">
  <INPUT TYPE="submit" VALUE="Upload">
</FORM>


B£®¶ÁÈ¡ÓʼþÖеĸ½¼þ
¶ÁÈ¡ÓʼþÖеĸ½¼þµÄ¹ý³ÌÒª±È·¢ËÍËüµÄ¹ý³Ì¸´ÔÓÒ»µã¡£ÒòΪ´øÓи½¼þµÄÓʼþÊǶಿ·Ö×é³ÉµÄ£¬ÎÒÃDZØÐë´¦Àíÿһ¸ö²¿·Ö»ñµÃÓʼþµÄÄÚÈݺ͸½¼þ¡£
µ«ÊÇÈçºÎ±æ±ðÓʼþÐÅÏ¢ÄÚÈݺ͸½¼þÄØ£¿SunÔÚPartÀࣨBodyPartÀàʵÏֵĽӿÚÀࣩÖÐÌṩÁËgetDisposition()·½·¨Èÿª·¢Õß»ñµÃÓʼþÌ岿·ÖµÄ²¿ÊðÀàÐÍ£¬µ±¸Ã²¿·ÖÊǸ½¼þʱ£¬Æä·µ»ØÖ®½«ÊÇPart.ATTACHMENT¡£µ«¸½¼þÒ²¿ÉÒÔûÓв¿ÊðÀàÐ͵ķ½Ê½´æÔÚ»òÕß²¿ÊðÀàÐÍΪPart.INLINE£¬ÎÞÂÛ²¿ÊðÀàÐÍΪPart.ATTACHMENT»¹ÊÇPart.INLINE£¬ÎÒÃǶ¼ÄܰѸÃÓʼþÌ岿·Öµ¼³ö±£´æ¡£

Multipart mp = (Multipart)message.getContent();

for (int i=0, n=multipart.getCount(); i<n; i++) {
  Part part = multipart.getBodyPart(i));

  String disposition = part.getDisposition();

  if ((disposition != null) &&
      ((disposition.equals(Part.ATTACHMENT) ||
       (disposition.equals(Part.INLINE))) {
    saveFile(part.getFileName(), part.getInputStream());
  }
}

ÏÂÁдúÂëÖÐʹÓÃÁËsaveFile·½·¨ÊÇ×Ô¶¨ÒåµÄ·½·¨£¬Ëü¸ù¾Ý¸½¼þµÄÎļþÃû½¨Á¢Ò»¸öÎļþ£¬Èç¹û±¾µØ´ÅÅÌÉÏ´æÔÚÃûΪ¸½¼þµÄÎļþ£¬ÄÇô½«ÔÚÎļþÃûºóÔö¼ÓÊý×Ö±íÊ¾Çø±ð¡£È»ºó´ÓÓʼþÌåÖжÁÈ¡Êý¾ÝдÈëµ½±¾µØÎļþÖУ¨´úÂëÊ¡ÂÔ£©¡£

// from saveFile()
File file = new File(filename);
for (int i=0; file.exists(); i++) {
  file = new File(filename+i);
}

ÒÔÉÏÊÇÓʼþÌ岿·Ö±»ÕýÈ·ÉèÖõļòµ¥Àý×Ó£¬Èç¹ûÓʼþÌ岿·ÖµÄ²¿ÊðÀàÐÍΪnull£¬ÄÇôÎÒÃÇͨ¹ý»ñµÃÓʼþÌ岿·ÖµÄMIMEÀàÐÍÀ´ÅÐ¶ÏÆäÀàÐÍ×÷ÏàÓ¦µÄ´¦Àí£¬´úÂë½á¹¹¿ò¼ÜÈçÏ£º

if (disposition == null) {
  // Check if plain
  MimeBodyPart mbp = (MimeBodyPart)part;
  if (mbp.isMimeType("text/plain")) {
    // Handle plain
  } else {
    // Special non-attachment cases here of
    // image/gif, text/html, ...
  }
...
}


8£®´¦ÀíHTMLÓʼþ
Ç°ÃæµÄÀý×ÓÖз¢Ë͵ÄÓʼþ¶¼ÊÇÒÔÎı¾ÎªÄÚÈݵ썳ýÁ˸½¼þ£©£¬ÏÂÃæ½«½éÉÜÈçºÎ½ÓÊպͷ¢ËÍ»ùÓÚHTMLµÄÓʼþ¡£
A£®·¢ËÍHTMLÓʼþ
¼ÙÈçÎÒÃÇÐèÒª·¢ËÍÒ»¸öHTMLÎļþ×÷ΪÓʼþÄÚÈÝ£¬²¢Ê¹Óʼþ¿Í»§¶ËÔÚ¶ÁÈ¡Óʼþʱ»ñÈ¡Ïà¹ØµÄͼƬ»òÕßÎÄ×ֵϰ£¬Ö»ÒªÉèÖÃÓʼþÄÚÈÝΪhtml´úÂ룬²¢ÉèÖÃÄÚÈÝÀàÐÍΪtext/html¼´¿É£º

String htmlText = "<H1>Hello</H1>" +
  "<img src=\"/pic/2006/1/5/1549001.gif\">";
message.setContent(htmlText, "text/html"));

Çë×¢Ò⣺ÕâÀïµÄͼƬ²¢²»ÊÇÔÚÓʼþÖÐÄÚǶµÄ£¬¶øÊÇÔÚURLÖж¨ÒåµÄ¡£Óʼþ½ÓÊÕÕßÖ»ÓÐÔÚÏßʱ²ÅÄÜ¿´µ½¡£
ÔÚ½ÓÊÕÓʼþʱ£¬Èç¹ûÎÒÃÇʹÓÃJavaMail API½ÓÊÕÓʼþµÄ»°ÊÇÎÞ·¨ÊµÏÖÒÔHTML·½Ê½ÏÔʾÓʼþÄÚÈݵġ£ÒòΪJavaMail APIÓʼþÄÚÈÝÊÓΪ¶þ½øÖÆÁ÷¡£ËùÒÔÒªÏÔʾHTMLÄÚÈݵÄÓʼþ£¬ÎÒÃDZØÐëʹÓÃJEditorPane»òÕßµÚÈý·½HTMLÕ¹ÏÖ×é¼þ¡£

ÒÔÏ´úÂëÏÔʾÁËÈçºÎʹÓÃJEditorPaneÏÔʾÓʼþÄÚÈÝ£º

if (message.getContentType().equals("text/html")) {
  String content = (String)message.getContent();
  JFrame frame = new JFrame();
  JEditorPane text = new JEditorPane("text/html", content);
  text.setEditable(false);
  JScrollPane pane = new JScrollPane(text);
  frame.getContentPane().add(pane);
  frame.setSize(300, 300);
  frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  frame.show();
}


B£®ÔÚÓʼþÖаüº¬Í¼Æ¬
Èç¹ûÎÒÃÇÔÚÓʼþÖÐʹÓÃHTML×÷ΪÄÚÈÝ£¬ÄÇô×îºÃ½«HTMLÖÐʹÓõÄͼƬ×÷ΪÓʼþµÄÒ»²¿·Ö£¬ÕâÑùÎÞÂÛÊÇ·ñÔÚÏß¶¼»áÕýÈ·µÄÏÔʾHTMLÖеÄͼƬ¡£´¦Àí·½·¨¾ÍÊǽ«HTMLÖÐÓõ½µÄͼƬ×÷ΪÓʼþ¸½¼þ²¢Ê¹ÓÃÌØÊâµÄcid URL×÷ΪͼƬµÄÒýÓã¬Õâ¸öcid¾ÍÊǶÔͼƬ¸½¼þµÄContent-IDÍ·µÄÒýÓá£
´¦ÀíÄÚǶͼƬ¾ÍÏñÏòÓʼþÖÐÌí¼Ó¸½¼þÒ»Ñù£¬²»Í¬Ö®´¦ÔÚÓÚÎÒÃDZØÐëͨ¹ýÉèÖÃͼƬ¸½¼þËùÔÚµÄÓʼþÌ岿·ÖµÄheaderÖÐContent-IDΪһ¸öËæ»ú×Ö·û´®£¬²¢ÔÚHTMLÖÐimgµÄsrc±ê¼ÇÖÐÉèÖÃΪ¸Ã×Ö·û´®¡£ÕâÑù¾ÍÍê³ÉÁËͼƬ¸½¼þÓëHTMLµÄ¹ØÁª¡£

String file = ...;

// Create the message
Message message = new MimeMessage(session);

// Fill its headers
message.setSubject("Embedded Image");
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,
  new InternetAddress(to));

// Create your new message part
BodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1>" +
  "<img src=\"cid:memememe\">";
messageBodyPart.setContent(htmlText, "text/html");

// Create a related multi-part to combine the parts
MimeMultipart multipart = new MimeMultipart("related");
multipart.addBodyPart(messageBodyPart);

// Create part for the image
messageBodyPart = new MimeBodyPart();

// Fetch the image and associate to part
DataSource fds = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(fds));
messageBodyPart.setHeader("Content-ID","<memememe>");

// Add part to multi-part
multipart.addBodyPart(messageBodyPart);

// Associate multi-part with message
message.setContent(multipart);


9£®ÔÚÓʼþÖÐËÑË÷¶ÌÓï
JavaMail APIÌṩÁ˹ýÂËÆ÷»úÖÆ£¬Ëü±»ÓÃÀ´½¨Á¢ËÑË÷¶ÌÓï¡£Õâ¸ö¶ÌÓïÓÉjavax.mail.search°üÖеÄSearchTerm³éÏóÀàÀ´¶¨Ò壬ÔÚ¶¨ÒåºóÎÒÃDZã¿ÉÒÔʹÓÃFolderµÄSearch()·½·¨ÔÚFolderÖвéÕÒÓʼþ£º

SearchTerm st = ...;
Message[] msgs = folder.search(st);

ÏÂÃæÓÐ22¸ö²»Í¬µÄÀࣨ¼Ì³ÐÁËSearchTermÀࣩ¹©ÎÒÃÇʹÓãº
AND terms (class AndTerm)
OR terms (class OrTerm)
NOT terms (class NotTerm)
SENT DATE terms (class SentDateTerm)
CONTENT terms (class BodyTerm)
HEADER terms (FromTerm / FromStringTerm, RecipientTerm / RecipientStringTerm, SubjectTerm, etc.)
ʹÓÃÕâЩÀඨÒåµÄ¶ÏÓOºÏ£¬ÎÒÃÇ¿ÉÒÔ¹¹ÔìÒ»¸öÂß¼­±í´ïʽ£¬²¢ÔÚFolderÖнøÐÐËÑË÷¡£ÏÂÃæÊÇÒ»¸öʵÀý£ºÔÚFolderÖÐËÑË÷ÓʼþÖ÷Ì⺬ÓС°ADV¡±×Ö·û´®»òÕß·¢ÐÅÈ˵ØÖ·Îªfriend@public.comµÄÓʼþ¡£

SearchTerm st =
  new OrTerm(
    new SubjectTerm("ADV:"),
    new FromStringTerm("friend@public.com"));
Message[] msgs = folder.search(st);


Áù¡¢²Î¿¼×ÊÔ´
JavaMail API Home
Sun¡¯s JavaMail API»ù´¡
JavaBeans Activation Framework Home
javamail-interest mailing list
Sun's JavaMail FAQ
jGuru's JavaMail FAQ
Third Party Products List

Æß¡¢´úÂëÏÂÔØ
http://java.sun.com/developer/onlineTraining/JavaMail/exercises.html
Ïà¹ØÎÄÕ ÈÈÃÅÎÄÕÂ
  • JavaMail³£¼ûÎÊÌâÖ®°²×°ºÍÅäÖÃÎÊÌâ½â´ð
  • ͨ¹ýJavaMail·ÃÎÊHotmailÓÊÏä
  • JavaMailÖ®POP3ЭÒéÅжÏÐÂÓʼþµÄ˼·
  • JavaMailʵÏÖÓʼþÌØ¿ìרµÝ
  • JavaMail Ö® ¶Å¾øÓʼþÂÒÂë
  • ÀûÓÃJavaMailÊÕ/·¢GmailÓʼþ(SSL)
  • Javamail´¦Àíunicode-1-1-utf-7±àÂëµÄÓʼþ
  • ÓÃjavamailÊÕÈ¡hotmailµÄÍËÐÅ
  • ¼ò»¯JavaMail£ºÐ¡ÇÉ Jakarta Commons-Email
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®¶þ
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®Ò»
  • javamailдµÄ½âÎöMimeMessageµÄ³ÌÐò
  • ÔÚJSPÖÐʹÓÃJavaMail
  • ͨ¹ýJavaMail·ÃÎÊHotmailÓÊÏä
  • ÀûÓÃJavaMailÊÕ/·¢GmailÓʼþ(SSL)
  • JavaMailÖ®POP3ЭÒéÅжÏÐÂÓʼþµÄ˼·
  • javamail·¢ËÍÓʼþ
  • javamailдµÄ½âÎöMimeMessageµÄ³ÌÐò
  • JavamailµÄ¿ª·¢ÓëÓ¦ÓÃ×ܽᾭÑéÖ®Ò»
  • JavaMailʵÏÖÓʼþÌØ¿ìרµÝ
  • Javamail²Ù×÷Ö¸ÄÏ£ºÊµÀý´úÂë½âÎö
  • JavaMail Ö® ¶Å¾øÓʼþÂÒÂë
  • ¼ò»¯JavaMail£ºÐ¡ÇÉ Jakarta Commons-Email
  • Javaµç×ÓÓʼþ
  • ×ÔÓÉ¹ã¸æÇø
    ¡¡
     
    ×îÐÂÈí¼þÏÂÔØ
  • ORF Enterprise Edition 4.2 Õýʽ°æ
  • WinWebMail 3.7.7.3 ±ê×¼°æ
  • WinWebMail 3.7.7.3 ÆóÒµ°æ
  • BMailì÷ÓÊ
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ¼..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NETÏÂÔØ
  • symantec10.1»ù±¾°²×°¼°ÅäÖÃÊÓÆµ½Ì³Ì
  • Backup Exec System RecoveryÖ®±¸·ÝÊÓÆ..
  • ½ñÈÕÓʼþ¼¼ÊõÎÄÕÂ
  • ÃÀ´óѧÉúÇÖÈëÅåÁÖÖݳ¤¸öÈËÓʼþÕË»§±»´þ²¶
  • ˼¿ÆIronPort·¢²¼Ðµç×ÓÓʼþ°²È«É豸
  • Éî¸û"Èí¼þ+·þÎñ" ΢Èí300³ÇÊÐѲչî£ÓÊ
  • ´ÓºÚ¿Í³£Óù¥»÷Êֶο´WEBÓ¦Ó÷À»¤
  • ÏûÏ¢ÈËʿ͸¶ÑÅ»¢ÓëAOLºÏ²¢Ï¸½Ú½«ÓÚ±¾Ô..
  • ¹È¸èÌṩµÄµç×ÓÓʼþ´æµµÊ±¼äÑÓ³¤ÎªÊ®Äê
  • ÑÅ»¢½«ÔÚÓÊÏä·þÎñÖÐÕûºÏаæÔÚÏßÈÕÀú
  • 9ÔÂÀ¬»øÓʼþ×ÜÁ¿¼õÉÙ ÓëISPµ¹±ÕÓйØ
  • À¬»øÓʼþ·¢Õ¹µÄËÄ´óÇ÷ÊÆ
  • º«¹úÒéÔ±³ÆÖйúºÚ¿Íð³äÇàÍß̨·¢ËͲ¡¶¾..
  • VistaÄÑ³ÉÆøºò Windows XPÊÙÃü±»ÑÓ³¤
  • ÈüÃÅÌú¿ËÉý¼¶DLP²úÆ·¼°·´À¬»øÓʼþÍø¹Ø
  • ×îÐÂרÌâ
  • Sendmail ÓʼþϵͳÅäÖÃ
  • ×齨Exchange 2003Óʼþϵͳ
  • Windows Server 2008 רÌâ
  • ORF ·´À¬»øÓʼþϵͳ
  • Exchange Server 2007 רÌâ
  • ISA Server 2006 ½Ì³ÌרÌâ
  • Windows Vista ¼¼ÊõרÌâ
  • ¡°ºÚÝ®¡±£¨BlackBerry£©×¨Ìâ
  • ÒÆ¶¯µç×ÓÓʼþרÌâ
  • Apache James רÌâ
  • IMail Server ²Ù×÷Ö¸ÄÏ
  • ISA Server 2004 ʹÓÃרÌâ
  • ·ÖÀർº½
    ÓʼþÐÂÎÅ×ÊѶ:
    ITÒµ½ç | Óʼþ·þÎñÆ÷ | ÓʼþȤÎÅ | ÒÆ¶¯µçÓÊ
    µç×ÓÓÊÏä | ·´À¬»øÓʼþ|Óʼþ¿Í»§¶Ë|ÍøÂ簲ȫ
    ÐÐÒµÊý¾Ý | ÓʼþÈËÎï | ÍøÕ¾¹«¸æ | ÐÐÒµ·¨¹æ
    ÍøÂç¼¼Êõ:
    ÓʼþÔ­Àí | ÍøÂçЭÒé | ÍøÂç¹ÜÀí | ´«Êä½éÖÊ
    Ïß·½ÓÈë | ·ÓÉ½Ó¿Ú | Óʼþ´æ´¢ | »ªÎª3Com
    CISCO¼¼Êõ | ÍøÂçÓë·þÎñÆ÷Ó²¼þ
    ²Ù×÷ϵͳ:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | ÆäËü²Ù×÷ϵͳ
    Óʼþ·þÎñÆ÷:
    ³ÌÐòÓ뿪·¢ | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    ½ðµÑÓʼþϵͳ | ÆäËü |
    ·´À¬»øÓʼþ:
    ×ÛÊö| ¿Í»§¶Ë·´À¬»øÓʼþ|·þÎñÆ÷¶Ë·´À¬»øÓʼþ
    Óʼþ¿Í»§¶ËÈí¼þ:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | À×Äñ | Eudora |Becky! |Pegasus
    IncrediMail |ÆäËü
    µç×ÓÓÊÏä: ¸öÈËÓÊÏä | ÆóÒµÓÊÏä |Gmail
    ÒÆ¶¯µç×ÓÓʼþ:·þÎñÆ÷ | ¿Í»§¶Ë | ¼¼ÊõÇ°ÑØ
    ÓʼþÍøÂ簲ȫ:
    Èí¼þ©¶´ | °²È«ÖªÊ¶ | ²¡¶¾¹«¸æ |·À»ðǽ
    ¹¥·À¼¼Êõ | ²¡¶¾²éɱ| ISA | Êý×ÖÇ©Ãû
    ÓʼþÓªÏú:
    EmailÓªÏú | ÍøÂçÓªÏú | ÓªÏú¼¼ÇÉ |ÓªÏú°¸Àý
    ÓʼþÈ˲Å:ÕÐÆ¸ | Ö°³¡ | Åàѵ | Ö¸ÄÏ | Ö°³¡
    ½â¾ö·½°¸:
    Óʼþϵͳ|·´À¬»øÓʼþ |°²È« |ÒÆ¶¯µçÓÊ |Õбê
    ²úÆ·ÆÀ²â:
    Óʼþϵͳ |·´À¬»øÓʼþ |ÓÊÏä |°²È« |¿Í»§¶Ë
    ¹ã¸æÁªÏµ | ºÏ×÷ÁªÏµ | ¹ØÓÚÎÒÃÇ | ÁªÏµÎÒÃÇ | ·±ówÖÐÎÄ
    °æÈ¨ËùÓУºÓʼþ¼¼Êõ×ÊÑ¶Íø©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   ÔÁICP±¸05009143ºÅ