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

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

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

    饒榮慶 -- 您今天UCWEB了嗎?--http://www.ucweb.com

    3G 手機(jī)開發(fā)網(wǎng)

       :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      99 Posts :: 1 Stories :: 219 Comments :: 0 Trackbacks
    關(guān)鍵字: 企業(yè)應(yīng)用 ? ????
    ????? 兄弟我理論性的東西說(shuō)不出來(lái),不過(guò)實(shí)際運(yùn)用咱還是有辦法的
    前幾天由于工作需要,想了解下關(guān)于支持ssl的郵件收發(fā),按照以前普通的做法是行不通的,所以就上網(wǎng)東找找,西瞧瞧。發(fā)現(xiàn)了個(gè)好東西,并且實(shí)驗(yàn)成功。
    ????? 那天本想來(lái)javaeye看看有沒(méi)有人有相關(guān)的經(jīng)驗(yàn),找了老半天,連個(gè)屁也沒(méi)聞到,我就說(shuō)我們,我們這些做程序員的不能老是吹吹水,談?wù)劦览恚覀兊媚贸鳇c(diǎn)實(shí)際的東西出來(lái),就想fins一樣,我就很佩服他的貢獻(xiàn)精神。
    ????? 不說(shuō)廢話了,看看源代碼,大家有空也可以實(shí)驗(yàn)下。還真有用
    package?org.job.six;

    ?
    import?java.io.UnsupportedEncodingException;
    import?java.security.Security;
    import?java.util.Properties;

    import?javax.mail.FetchProfile;
    import?javax.mail.Folder;
    import?javax.mail.Message;
    import?javax.mail.Session;
    import?javax.mail.Store;
    import?javax.mail.URLName;
    import?javax.mail.internet.InternetAddress;
    import?javax.mail.internet.MimeUtility;

    import?org.job.util.Logger;
    import?org.job.util.mail.ApplicationContext;

    /**
    ?*?用于收取Gmail郵件
    ?*?
    ?*?
    @author?wuhua
    ?
    */
    public?class?GmailFetch?{
    ????
    private?static?Logger?logger?=?Logger.getLogger(GmailFetch.class);
    ????
    public?static?void?main(String?argv[])?throws?Exception?{
    ????????logger.debug(
    "開始讀取郵件");
    ????????Security.addProvider(
    new?com.sun.net.ssl.internal.ssl.Provider());
    ????????
    final?String?SSL_FACTORY?=?"javax.net.ssl.SSLSocketFactory";

    ????????
    //?Get?a?Properties?object
    ????????Properties?props?=?System.getProperties();
    ????????props.setProperty(
    "mail.pop3.socketFactory.class",?SSL_FACTORY);
    ????????props.setProperty(
    "mail.pop3.socketFactory.fallback",?"false");
    ????????props.setProperty(
    "mail.pop3.port",?"995");
    ????????props.setProperty(
    "mail.pop3.socketFactory.port",?"995");

    ????????
    //?以下步驟跟一般的JavaMail操作相同
    ????????Session?session?=?Session.getDefaultInstance(props,?null);

    ????????
    //?請(qǐng)將紅色部分對(duì)應(yīng)替換成你的郵箱帳號(hào)和密碼
    ????????URLName?urln?=?new?URLName("pop3",?ApplicationContext.POP3,?995,?null,
    ????????????????ApplicationContext.GMAIL_MAIL_NAME,
    ????????????????ApplicationContext.GMAIL_MAIL_PASSWORD);
    ????????Store?store?
    =?session.getStore(urln);
    ????????Folder?inbox?
    =?null;
    ????????
    try?{
    ????????????store.connect();
    ????????????inbox?
    =?store.getFolder("INBOX");
    ????????????inbox.open(Folder.READ_ONLY);
    ????????????FetchProfile?profile?
    =?new?FetchProfile();
    ????????????profile.add(FetchProfile.Item.ENVELOPE);
    ????????????Message[]?messages?
    =?inbox.getMessages();
    ????????????inbox.fetch(messages,?profile);
    ????????????logger.debug(
    "收件箱的郵件數(shù):"?+?messages.length);
    ????????????
    for?(int?i?=?0;?i?<?messages.length;?i++)?{
    ????????????????
    //?郵件發(fā)送者
    ????????????????String?from?=?decodeText(messages[i].getFrom()[0].toString());
    ????????????????InternetAddress?ia?
    =?new?InternetAddress(from);
    ????????????????logger.debug(
    "發(fā)信人:"?+?ia.getPersonal()?+?'('
    ????????????????????????
    +?ia.getAddress()?+?')');
    ????????????????
    //?郵件標(biāo)題
    ????????????????logger.debug("主題:"?+?messages[i].getSubject());
    ????????????????
    //?郵件大小
    ????????????????logger.debug("郵件大小:"?+?messages[i].getSize());
    ????????????????
    //?郵件發(fā)送時(shí)間
    ????????????????logger.debug("發(fā)送日期:"?+?messages[i].getSentDate());
    ????????????}
    ????????}?
    finally?{
    ????????????
    try?{
    ????????????????inbox.close(
    false);
    ????????????}?
    catch?(Exception?e)?{
    ????????????}
    ????????????
    try?{
    ????????????????store.close();
    ????????????}?
    catch?(Exception?e)?{
    ????????????}
    ????????}
    ????????
    ????????logger.debug(
    "讀取郵件完畢");
    ????}

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

    }
    package?org.job.six;

    ?
    import?java.io.UnsupportedEncodingException;
    import?java.security.Security;
    import?java.util.Properties;

    import?javax.mail.FetchProfile;
    import?javax.mail.Folder;
    import?javax.mail.Message;
    import?javax.mail.Session;
    import?javax.mail.Store;
    import?javax.mail.URLName;
    import?javax.mail.internet.InternetAddress;
    import?javax.mail.internet.MimeUtility;

    import?org.job.util.Logger;
    import?org.job.util.mail.ApplicationContext;

    /**
    ?*?用于收取Gmail郵件
    ?*?
    ?*?
    @author?wuhua
    ?
    */
    public?class?GmailFetch?{
    ????
    private?static?Logger?logger?=?Logger.getLogger(GmailFetch.class);
    ????
    public?static?void?main(String?argv[])?throws?Exception?{
    ????????logger.debug(
    "開始讀取郵件");
    ????????Security.addProvider(
    new?com.sun.net.ssl.internal.ssl.Provider());
    ????????
    final?String?SSL_FACTORY?=?"javax.net.ssl.SSLSocketFactory";

    ????????
    //?Get?a?Properties?object
    ????????Properties?props?=?System.getProperties();
    ????????props.setProperty(
    "mail.pop3.socketFactory.class",?SSL_FACTORY);
    ????????props.setProperty(
    "mail.pop3.socketFactory.fallback",?"false");
    ????????props.setProperty(
    "mail.pop3.port",?"995");
    ????????props.setProperty(
    "mail.pop3.socketFactory.port",?"995");

    ????????
    //?以下步驟跟一般的JavaMail操作相同
    ????????Session?session?=?Session.getDefaultInstance(props,?null);

    ????????
    //?請(qǐng)將紅色部分對(duì)應(yīng)替換成你的郵箱帳號(hào)和密碼
    ????????URLName?urln?=?new?URLName("pop3",?ApplicationContext.POP3,?995,?null,
    ????????????????ApplicationContext.GMAIL_MAIL_NAME,
    ????????????????ApplicationContext.GMAIL_MAIL_PASSWORD);
    ????????Store?store?
    =?session.getStore(urln);
    ????????Folder?inbox?
    =?null;
    ????????
    try?{
    ????????????store.connect();
    ????????????inbox?
    =?store.getFolder("INBOX");
    ????????????inbox.open(Folder.READ_ONLY);
    ????????????FetchProfile?profile?
    =?new?FetchProfile();
    ????????????profile.add(FetchProfile.Item.ENVELOPE);
    ????????????Message[]?messages?
    =?inbox.getMessages();
    ????????????inbox.fetch(messages,?profile);
    ????????????logger.debug(
    "收件箱的郵件數(shù):"?+?messages.length);
    ????????????
    for?(int?i?=?0;?i?<?messages.length;?i++)?{
    ????????????????
    //?郵件發(fā)送者
    ????????????????String?from?=?decodeText(messages[i].getFrom()[0].toString());
    ????????????????InternetAddress?ia?
    =?new?InternetAddress(from);
    ????????????????logger.debug(
    "發(fā)信人:"?+?ia.getPersonal()?+?'('
    ????????????????????????
    +?ia.getAddress()?+?')');
    ????????????????
    //?郵件標(biāo)題
    ????????????????logger.debug("主題:"?+?messages[i].getSubject());
    ????????????????
    //?郵件大小
    ????????????????logger.debug("郵件大小:"?+?messages[i].getSize());
    ????????????????
    //?郵件發(fā)送時(shí)間
    ????????????????logger.debug("發(fā)送日期:"?+?messages[i].getSentDate());
    ????????????}
    ????????}?
    finally?{
    ????????????
    try?{
    ????????????????inbox.close(
    false);
    ????????????}?
    catch?(Exception?e)?{
    ????????????}
    ????????????
    try?{
    ????????????????store.close();
    ????????????}?
    catch?(Exception?e)?{
    ????????????}
    ????????}
    ????????
    ????????logger.debug(
    "讀取郵件完畢");
    ????}

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

    }


    上面代碼,完全可以封裝成一個(gè)收取ssl郵件的庫(kù)
    改天有時(shí)間整理下關(guān)于發(fā)郵件的方法

    爬蟲工作室 -- 專業(yè)的手機(jī)軟件開發(fā)工作室
    3G視線 -- 專注手機(jī)軟件開發(fā)
    posted on 2007-03-30 14:36 3G工作室 閱讀(4735) 評(píng)論(9)  編輯  收藏 所屬分類: j2ee

    Feedback

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-03-30 14:44 王彥鋒的技術(shù)實(shí)踐
    呵呵,感謝你的貢獻(xiàn)精神!  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-03-30 15:00 爬蟲工作室
    恭喜是應(yīng)該
    寫程序最重要的是貢獻(xiàn)我們的思路跟思想
    當(dāng)然實(shí)現(xiàn)上面的那些東西就是代碼片段  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-03-30 15:12 BeanSoft
    這個(gè)程序可以簡(jiǎn)單概括為:
    JavaMail 用 SSL 連接收取 POP3 郵件.
    謝謝分享!
    核心代碼(值得收藏的地方):
    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

    // Get a Properties object
    Properties props = System.getProperties();
    props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
    props.setProperty("mail.pop3.socketFactory.fallback", "false");
    props.setProperty("mail.pop3.port", "995");
    props.setProperty("mail.pop3.socketFactory.port", "995");

    // 以下步驟跟一般的JavaMail操作相同
    Session session = Session.getDefaultInstance(props, null);  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-03-30 16:14 爬蟲工作室
    還是老兄您厲害  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-03-30 19:17 java 新手
    感謝,非常有用!  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序[未登錄](méi) 2007-04-02 10:51 54powerman
    // 請(qǐng)將紅色部分對(duì)應(yīng)替換成你的郵箱帳號(hào)和密碼


    紅色部分,好紅啊!!!  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序 2007-04-03 09:02 爬蟲工作室
    因?yàn)榇a也是從網(wǎng)上那里獲取點(diǎn),這里修改下,所以。。。。。。。  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序[未登錄](méi) 2010-12-28 16:20 yin
    兄弟,有沒(méi)源程序,幫忙發(fā)下 ,329327140@qq.com.謝了  回復(fù)  更多評(píng)論
      

    # re: 一個(gè)讀取Gmail郵件的簡(jiǎn)單程序[未登錄](méi) 2011-09-30 09:55 yang
    能不能注解一下,有些參數(shù)不知道怎么樣寫

      回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲男人的天堂网站| 国产在线a免费观看| 亚洲国产精品久久久久秋霞小| 国产A在亚洲线播放| 亚洲第一页日韩专区| 毛片免费在线播放| 亚洲一级免费毛片| 在线免费观看h片| 一级毛片免费全部播放| 亚洲国产成人久久综合一区| 久久久久亚洲精品成人网小说| 亚洲一区二区三区无码影院| 国产精品久久久久影院免费| 岛国片在线免费观看| 国产va免费精品观看精品| 香港a毛片免费观看| 免费在线观影网站| 中文字幕高清免费不卡视频| 边摸边吃奶边做爽免费视频99| 精品国产成人亚洲午夜福利| 亚洲最新在线视频| 亚洲成人网在线观看| 亚洲老熟女@TubeumTV| 亚洲国产精品线在线观看| 亚洲AV永久无码精品| 亚洲无人区一区二区三区| 国产成人99久久亚洲综合精品| 亚洲A∨午夜成人片精品网站| 国产乱人免费视频| 四虎影视精品永久免费| 国产精品美女自在线观看免费| 日韩中文无码有码免费视频| 午夜视频在线观看免费完整版| 免费无码肉片在线观看| 久久午夜免费视频| 免费中文熟妇在线影片| 成年女人永久免费观看片| 国产无遮挡色视频免费视频| 免费吃奶摸下激烈视频| 亚洲五月午夜免费在线视频| 亚洲色欲色欲www在线丝|