<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## Java專題十七:JavaMail [TOC] 對JavaMail封裝,提供更多的功能([https://github.com/15045120/mail4j](https://github.com/15045120/mail4j)): 1. 定時發送 2. 加密郵件成壓縮包發送 3. 全文搜索 ### 問題1:怎樣使用SSL在傳輸層對網絡連接進行加密 JavaMail對郵件操作分為兩類: 1.收取郵件Store類,收取郵件使用IMAP和POP協議,使用`Store store = session.getStore(recProtocol);`時,會根據recProtocol自動選擇IMAPStore、IMAPSSLStore、POP3Store、POP3SSLStore對象返回 2.發送郵件Transport類,發送郵件使用SMTP協議,使用`Transport transport = session.getTransport(sendProtocol);`時,會根據sendProtocol自動選擇SMTPTransport、SMTPSSLTransport對象返回 所以我們想使用SSL協議,只需要改變recProtocol和sendProtocol即可,具體使用如下: 協議名(recProtocolor sendProtocol)|默認端口|類對象 -|-|-| imap|143|IMAPStore pop3|110|POP3Store smtp|25|SMTPTransport imaps|993|IMAPSSLStore pop3s|995|POP3SSLStore smtps|465|SMTPSSLTransport ### 問題2:pop協議時,使用`store.getFolder(folder)`只支持`INBOX`,獲取草稿箱等其他目錄會報異常 具體看下面`com.sun.mail.pop3.POP3Store#getFolder(String name)` ```java /** * Only the name "INBOX" is supported. */ @Override public Folder getFolder(String name) throws MessagingException { checkConnected(); return new POP3Folder(this, name); } ``` ### 問題3:阿里云服務器使用JavaMail通過25端口發送SMTP郵件出錯 由于阿里云限制了25號端口,因此我們使用Javamail郵件發送時,使用SSL協議下的645端口發送郵件,也就是使用`SMTPSSLTransport`發送郵件,就像下面代碼所示: ```java transport = session.getTransport("smtps"); transport.connect(host, 465, account, password); transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); transport.close(); ``` ### 問題4:判斷一封郵件是否為新郵件或者說是否已收取 開始使用的是`Message-ID`來判斷郵件是否在本地中存在,但這種方法存一個問題就是當我們調用`((MimeMessage)msg).getMessageID()`獲取MessageId時會自動郵件頭,非常消耗時間,這里我們使用`UIDL`命令獲取message unique ID,使用方法如下: ```java /* protocol 為郵件協議,muid為每封郵件的unique ID,msg為郵件Message對象 */ if(protocol.indexOf("pop") != -1){ muid = ((POP3Folder)f).getUID(msg); }else{ muid = Long.toString(((IMAPFolder)f).getUID(msg)); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看