Java中接收電子郵件是Store和Folder類別與MimeMessage、Session和Transport類別結合使用。它用於接收電子郵件和學習 JavaMail API 的電子郵件發送階段。 emailreceive 測試類別將與附近的電子郵件伺服器和帳戶的郵件進行聯繫,並顯示它們以指出主機設定檔中的主機名稱和 pop3 的 IP 位址,這是首選的郵件儲存協定類型。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
要了解JavaMail API 的電子郵件發送階段,emailreceive 測試類別將與附近的電子郵件伺服器聯繫,連接到帳戶的電子郵件,並顯示它們以突出顯示主機設定檔中主機名的IP 位址pop3 是首選的郵件儲存協定類型。
接收電子郵件是使用 Store 和資料夾類別以及 MimeMessage、Session 和 Transport 類別來完成的。該程式接收電子郵件作為 HTTP 請求。我們必須在應用程式設定中將電子郵件地址與 servlet 相關聯,以便處理傳入的電子郵件訊息,然後必須將 servlet 程式碼包含在 Web 應用程式中。正確的 servlet 從傳入電子郵件接收 HTTP 請求來處理請求並傳送回應。
我們已經研究了使用 Java Mail API 發送電子郵件。由於只需學習一種協定(SMTP),發送電子郵件就相當簡單了。不過,POP3 和 IMAP 是用於接收的兩種協定。更傳統的 POP3 協定提供一個帶有單一郵件訊息佇列的收件匣。最新的標準 IMAP 將郵件顯示為資料夾層次結構中的條目,其中一個是收件匣。
POP3 和 IMAP Provider 實現,以及它們的安全對應項 POP3S 和 IMAPS,都包含在 Java Mail 中。
我們必須載入以下兩個 jar 檔案才能使用 JavaMail API 發送電子郵件:
我們可以將完全免費且開源的 JavaMail API 實作合併到產品中。此版本還具有 SMTP、POP3 和 IMAP 提供者的功能。名為 Jakarta Mail 的 Jakarta EE API 主要用於透過 SMTP、POP3 和 IMAP 協定發送和接收電子郵件。 Java EE 平台包含內建版本的 Jakarta Mail,但 Java SE 使用者也可以使用額外的軟體包。在最近幾個月發布的最新版本中,還有另一個開源Java Mail 實作(即GNU JavaMail),僅支援JavaMail 規範的1.3 版本,但僅提供免費的NNTP 後端,因此可以使用該技術進行閱讀和發送新聞群組文章。
下面給出的是提到的例子:
代碼:
package TestNG; import java.io.IOException; import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session; import javax.mail.Store; import com.sun.mail.pop3.POP3Store; public class NewTest{ public static void receiveEmail(String hst, String stype, String user, String password) { try { Properties props = new Properties(); props.put("mail.store.protocol", "pop3"); props.put("mail.pop3s.host", hst); props.put("mail.pop3s.port", "995"); props.put("mail.pop3.starttls.enable", "true"); Session sess = Session.getDefaultInstance(props); Store st = sess.getStore("pop3s"); st.connect(hst, user, password); Folder emailFolder = st.getFolder("INBOX"); emailFolder.open(Folder.READ_ONLY); Message[] messages = emailFolder.getMessages(); for (int i = 0; i < messages.length; i++) { Message message = messages[i]; System.out.println("Welcome To Email"); System.out.println("Email Number " + (i + 1)); System.out.println("Subject: " + message.getSubject()); System.out.println("From: " + message.getFrom()[0]); System.out.println("Text: " + message.getContent().toString()); } emailFolder.close(false); st.close(); } catch (NoSuchProviderException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} } public static void main(String[] args) { String host = "pop.gmail.com"; String stypes = "pop3"; String username= "[email protected]"; String password= "xodbizaoiqijifre"; receiveEmail(host, stypes, username, password); } }
輸出:
說明:
以下是提到的常見問題:
答案:
使用 JavaMail API 檢索或接收具有底層協定的基本電子郵件與此層完全無關。
答案:
其中IMAP是一種用於接收訊息的高階協定。
答案:
程式接收電子郵件作為 HTTP 請求。我們必須在應用程式設定中將電子郵件地址與 servlet 關聯起來,以便處理傳入的電子郵件訊息,我們應該在應用程式中包含 servlet 程式碼。然後,適當的 Servlet 接收來自傳入電子郵件的 HTTP 請求並處理它們。
以上是Java接收郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!