隨筆-193  評論-715  文章-1  trackbacks-0
          1,讀入圖片的方式:
          發(fā)現(xiàn)網(wǎng)上講的很多讀取圖片的方式都不對,按下面提供的這個方法來讀取,保證成功。
          ?1????private?byte[]?getImageBytes(String?file)?{
          ?2????????byte[]?myData?=?null;
          ?3????????InputStream?input?=?getClass().getClassLoader().getResourceAsStream(
          ?4????????????????file);
          ?5????????try?{
          ?6????????????ByteArrayOutputStream?byteArray?=?new?ByteArrayOutputStream();
          ?7????????????int?ch?=?0;
          ?8????????????while?((ch?=?input.read())?!=?-1)?{
          ?9????????????????byteArray.write(ch);
          10????????????}

          11????????????//?System.out.println(byteArray.size());
          12????????????myData?=?byteArray.toByteArray();
          13????????????//?System.out.println(myData.length);
          14????????}
          ?catch?(Exception?e)?{
          15????????????e.printStackTrace();
          16????????}

          17????????return?myData;
          18????}

          2,發(fā)送郵件的“機關(guān)”
          ?1????????MimeMessage?msg?=?new?MimeMessage(mailSession);
          ?2????????msg.setFrom(new?InternetAddress(this.getSenderAddress()));
          ?3????????msg.setSubject(this.getTitle());
          ?4????????msg.setSentDate(new?Date());
          ?5????????Address[]?adds?=?InternetAddress.parse(getToAddress());
          ?6????????msg.addRecipients(javax.mail.Message.RecipientType.TO,?adds);
          ?7????????//?新建一個MimeMultipart對象用來存放BodyPart對象(事實上可以存放多個)
          ?8????????MimeMultipart?mm?=?new?MimeMultipart("related");
          ?9????????//?新建一個存放信件內(nèi)容的BodyPart對象
          10????????BodyPart?mdp?=?new?MimeBodyPart();
          11????????//?給BodyPart對象設(shè)置內(nèi)容和格式/編碼方式
          12????????mdp.setContent(this.getContent(),?"text/html;charset=utf-8");
          13????????//?這句很重要,千萬不要忘了
          14????????mm.addBodyPart(mdp);
          15
          16????????//?---------圖片處理開始!!!!!!!!!!!!!!!!
          17????????mdp?=?new?MimeBodyPart();
          18????????byte?bbb[]?=?new?byte[1024?*?10];
          19????????this.getClass().getClassLoader().getResourceAsStream("notice.jpg")
          20????????????????.read(bbb);
          21????????DataHandler?dh?=?new?DataHandler(new?ByteArrayDataSource(this
          22????????????????.getImageBytes("notice.jpg"),?"application/octet-stream"));
          23????????mdp.setDataHandler(dh);
          24????????//?加上這句將作為附件發(fā)送,否則將作為信件的文本內(nèi)容
          25????????mdp.setFileName("1.jpg");
          26????????mdp.setHeader("content-id",?"<IMG1>");
          27????????//?將含有附件的BodyPart加入到MimeMultipart對象中
          28????????mm.addBodyPart(mdp);
          29????????//?---------圖片處理結(jié)束!!!!!!!!!!!!!!!!
          30
          31????????//?把mm作為消息對象的內(nèi)容
          32????????msg.setContent(mm);
          仔細看代碼中的注釋吧,相信大有幫助。

          3,一個實際應(yīng)用的完整代碼
          要求根據(jù)一個格式文件和模版,發(fā)一封漂亮的郵件,所以需要用到HTML格式來發(fā)送郵件。不多說了,看代碼吧!


          4,小技巧
          我第一次發(fā)送后,發(fā)現(xiàn)讀取圖片的程序不對,在Outlook 2003中打開郵件,發(fā)現(xiàn)沒有出現(xiàn)圖片,搞半天也不知道是什么原因,后來我用FoxMail打開郵件,發(fā)現(xiàn)圖片附件上打了個叉叉,才知道是附件中的圖片讀取不對,如果你有這樣的問題,不妨換個Mail客戶端試試。
          posted on 2007-12-03 16:42 Robin's Programming World 閱讀(1482) 評論(4)  編輯  收藏

          評論:
          # re: 用Java Mail發(fā)送帶圖片附件的要點 2007-12-03 17:58 | HiMaigc!
          不錯,很完整的說明。  回復(fù)  更多評論
            
          # re: 用Java Mail發(fā)送帶圖片附件的要點 2007-12-04 09:11 | 千里冰封
          不錯,很詳細,  回復(fù)  更多評論
            
          # re: 用Java Mail發(fā)送帶圖片附件的要點 2008-04-01 22:14 | 草包書生
          我正在為發(fā)送附件問題而煩惱,thanks for you  回復(fù)  更多評論
            
          # re: 用Java Mail發(fā)送帶圖片附件的要點 2008-04-10 02:27 | Robin's Java World
          @草包書生
          不客氣,如果能由于我的分享給大家?guī)矸奖悖腋械胶芸鞓贰?nbsp; 回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 阿拉善左旗| 久治县| 丰顺县| 故城县| 丰都县| 泸溪县| 公主岭市| 青铜峡市| 新野县| 义马市| 建瓯市| 镇雄县| 洛南县| 布拖县| 章丘市| 泰州市| 宜兰市| 北海市| 西盟| 新干县| 龙游县| 涿州市| 连云港市| 城口县| 长顺县| 澜沧| 建德市| 桐梓县| 定日县| 勐海县| 定结县| 余庆县| 恩施市| 和平县| 平度市| 如东县| 马边| 芦山县| 肥东县| 体育| 开远市|