<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 70,comments - 408,trackbacks - 0
    看過在jsp中調用javamail后發現里面只有發郵件,沒有收看郵件,且在收看郵件時有個很麻煩的內碼轉換問題,所以寫這篇文章出來給大家看看。如有錯誤請寫信給我。
    使用Java Mail API的方法,主要的操作過程為:
    ● 獲取javax.mail.Session實例,并進而獲得javax.mail.Store實例。
    ● 利用javax.mail.Store實例獲得缺省收件箱(INBOX)javax.mail.Folder實例。
    ● 使用javax.mail.Folder對象提取新郵件,存儲為javax.mail.Message對象數組。
    ● 創建javax.mail.FetchProfile以(潛在地)優化對特定郵件組成成分的提取。
    這里的javax.mail.FetchProfile類提供郵件協議提供者可選參數,其目的是更有效地實現郵件組成成分的預提取。
    一個例子:
    <%@ page language="java" contentType="text/html;charset=gb2312" %>
    <%@ page import="java.util.*,java.io.*,java.text.*" %>
    <%@ page import="javax.mail.*,javax.mail.internet.*,javax.activation.*" %>
    <%!
    private String getDisplayAddress(Address a) //轉換RFC822為Unicode
    { String pers = null;
    String addr = null;
    if(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null))
    addr=pers+" "+"<"+((InternetAddress)a).getAddress()+">";

    else
    addr = a.toString();
    return addr;
    }
    %>
    <%
    Session mailsession=Session.getInstance(System.getProperties(),null);
    mailsession.setDebug(false);
    Store store=mailsession.getStore(protocol);//protocol為連接協議,IMAP或是POP
    store.connect(mailhost,-1,user,passwd);//mailhost主機,user為用戶名,passwd為密碼
    Folder folder = store.getFolder("INBOX");
    try
    { folder.open(Folder.READ_WRITE);}
    catch (MessagingException ex)
    { folder.open(Folder.READ_ONLY);}
    Message message[]=folder.getMessages();
    FetchProfile fp=new FetchProfile();
    fp.add(FetchProfile.Item.ENVELOPE);
    fp.add(FetchProfile.Item.FLAGS);
    fp.add("X-Mailer");
    folder.fetch(message,fp);
    int id=0,j=0;
    for(int i=0;i<request.getParameter("id").length();i++)//假設要閱讀第ID個郵件。
    id=id*10+(request.getParameter("id").charAt(i)-48);
    for(j=0;j<id;j++);
    message[j].setFlag(Flags.Flag.SEEN,true);
    out.println("<table width=\"550\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" borderColorDark=\"#eaf0ff\" borderColorLight=\"#000000\" align=\"center\">");
    out.println("<tr>");
    out.println("<td width=60>主題:</td><td width=490> "+message[j].getSubject()+" </td></tr>");
    String from=new String();
    Address[] fr=message[j].getFrom();
    if(fr!=null)
    { boolean tf=true;
    for(int i=0;i<fr.length;i++)
    from=from+getDisplayAddress(fr);
    }
    out.println("<tr><td width=60>來自:</td><td width=490> "+from+" </td></tr>");
    out.println("<tr><td colspan=\"2\"> <div align=\"center\"><b>內容</b></div><br>");
    Object o=message[j].getContent();
    if (message[j].isMimeType("text/plain")) //若其Type為tex/plain就可直接讀出了。
    out.println((String)o+"</td>");
    else if(message[j].isMimeType("multipart/*"))
    { Multipart mp=(Multipart)o;
    Part part=mp.getBodyPart(0);
    String msg=(String)part.getContent();
    StringBuffer buf=new StringBuffer(msg.length()+6);
    char ch=' ';
    for(int i=0;i<msg.length();i++)//若遇到換行就轉為<br>
    { ch=msg.charAt(i);
    if(ch=='\n')buf.append("<br>");
    else buf.append(ch);
    }
    out.println(buf.toString());
    }
    else
    out.println("現在還無法顯示:"+message[j].getContentType());
    out.println("</tr>");
    out.println("<table>");
    folder.close(true);
    store.close();
    %>
    在Folder對象中可以用getMessageCount()和getUnreadMessageCount()方法來取得總共有多少封信和共有多少封信未讀。
    posted on 2006-04-12 13:38 我心依舊 閱讀(915) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码少妇30P| 在线观看亚洲一区二区| 亚洲Av永久无码精品黑人| 4hu四虎最新免费地址| 亚洲黄色一级毛片| 最近免费mv在线电影| 亚洲黄色三级网站| 成人免费午夜在线观看| 亚洲熟女综合色一区二区三区| 日韩免费视频观看| 日韩免费码中文在线观看| 国产L精品国产亚洲区久久| 东方aⅴ免费观看久久av| 亚洲精品综合一二三区在线| 最近2019免费中文字幕6| 亚洲国产精品一区二区三区在线观看| 在线观看免费高清视频| 精品亚洲av无码一区二区柚蜜| 免费一级一片一毛片| 伊人免费在线观看高清版| 亚洲黄色免费网址| 热99re久久精品精品免费| 一级毛片免费不卡| 亚洲精品综合一二三区在线| 国产v精品成人免费视频400条| 亚洲精品女同中文字幕| 亚洲无码视频在线| 18禁男女爽爽爽午夜网站免费| 亚洲妇女熟BBW| 国产精品亚洲视频| 无码区日韩特区永久免费系列 | 中文字幕看片在线a免费| 日产亚洲一区二区三区| 午夜dj免费在线观看| 久久av免费天堂小草播放| 亚洲国产高清视频在线观看| 国产91在线免费| 免费看又黄又无码的网站| 自拍偷自拍亚洲精品偷一| 久久精品国产精品亚洲艾| 精品久久洲久久久久护士免费|