- JavaMail API 教程
- JavaMail - 首頁
- JavaMail API - 概述
- JavaMail - 環境設定
- JavaMail - 核心類
- JavaMail - 傳送郵件
- JavaMail - 檢查郵件
- JavaMail - 獲取郵件
- JavaMail - 身份驗證
- JavaMail - 回覆郵件
- JavaMail - 轉發郵件
- JavaMail - 刪除郵件
- JavaMail - Gmail SMTP 伺服器
- JavaMail - 資料夾管理
- JavaMail - 配額管理
- JavaMail - 退信
- JavaMail API 協議
- JavaMail - SMTP 伺服器
- JavaMail - IMAP 伺服器
- JavaMail - POP3 伺服器
- JavaMail API 有用資源
- JavaMail - 快速指南
- JavaMail - 有用資源
- JavaMail - 討論
JavaMail API - POP3 伺服器
郵局協議 (POP) 是一種應用層網際網路標準協議,本地電子郵件客戶端使用它透過 TCP/IP 連線從遠端伺服器檢索電子郵件。POP 支援簡單的下載和刪除需求,以訪問遠端郵箱。POP3 伺服器監聽眾所周知的埠 110。
com.sun.mail.pop3 包是 JavaMail API 的 POP3 協議提供程式,它提供對 POP3 訊息儲存的訪問。下表列出了此包中的類
| 名稱 | 描述 |
|---|---|
| POP3Folder | POP3 資料夾(只能是“INBOX”)。 |
| POP3Message | POP3 訊息。 |
| POP3SSLStore | 使用 SSL 的 POP3 訊息儲存。 |
| POP3Store | POP3 訊息儲存。 |
關於此提供程式的一些需要說明的要點
POP3 提供程式僅支援一個名為INBOX的資料夾。由於 POP3 協議的限制,JavaMail API 的許多功能(如事件通知、資料夾管理、標誌管理等)都不允許。
透過使用協議名稱pop3或表單pop3://user:password@host:port/INBOX的 URL,透過 JavaMail API 訪問 POP3 提供程式。
POP3 不支援永久標誌。例如,Flags.Flag.RECENT 標誌永遠不會為 POP3 訊息設定。應用程式需要自行確定 POP3 郵箱中的哪些郵件是新的。
POP3 不支援 Folder.expunge() 方法。要刪除和清除訊息,請在訊息上設定 Flags.Flag.DELETED 標誌,並使用 Folder.close(true) 方法關閉資料夾。
POP3 不提供接收日期,因此 getReceivedDate 方法將返回 null。
當訪問 POP3 訊息的標頭時,POP3 提供程式使用 TOP 命令獲取所有標頭,然後將其快取。
當訪問 POP3 訊息的內容時,POP3 提供程式使用 RETR 命令獲取整個訊息。
POP3Message.invalidate 方法可用於使快取資料無效,而無需關閉資料夾。
POP3 協議提供程式支援以下屬性,這些屬性可以在 JavaMail Session 物件中設定。這些屬性始終設定為字串;“型別”列描述了字串的解釋方式。
| 名稱 | 型別 | 描述 |
|---|---|---|
| mail.pop3.user | 字串 | POP3 的預設使用者名稱。 |
| mail.pop3.host | 字串 | 要連線到的 POP3 伺服器。 |
| mail.pop3.port | 整數 | 要連線到的 POP3 伺服器埠,如果 connect() 方法沒有明確指定埠。預設為 110。 |
| mail.pop3.connectiontimeout | 整數 | 以毫秒為單位的套接字連線超時值。預設為無限超時。 |
| mail.pop3.timeout | 整數 | 以毫秒為單位的套接字 I/O 超時值。預設為無限超時。 |
| mail.pop3.rsetbeforequit | 布林值 | 在關閉資料夾時傳送 POP3 RSET 命令,然後再發送 QUIT 命令。預設為 false。 |
| mail.pop3.message.class | 字串 | com.sun.mail.pop3.POP3Message 的子類的類名。子類可用於處理(例如)非標準的 Content-Type 標頭。子類必須具有表單 MyPOP3Message(Folder f, int msgno) throws MessagingException 的公共建構函式。 |
| mail.pop3.localaddress | 字串 | 建立 POP3 套接字時要繫結的本地地址(主機名)。預設為 Socket 類選擇的地址。 |
| mail.pop3.localport | 整數 | 建立 POP3 套接字時要繫結的本地埠號。預設為 Socket 類選擇的埠號。 |
| mail.pop3.apop.enable | 布林值 | 如果設定為 true,則使用 APOP 而不是 USER/PASS 登入到 POP3 伺服器(如果 POP3 伺服器支援 APOP)。APOP 傳送密碼的摘要而不是明文密碼。預設為 false。 |
| mail.pop3.socketFactory | 套接字工廠 | 如果設定為實現 javax.net.SocketFactory 介面的類,則此類將用於建立 POP3 套接字。 |
| mail.pop3.socketFactory.class | 字串 | 如果設定,則指定實現 javax.net.SocketFactory 介面的類的名稱。此類將用於建立 POP3 套接字。 |
| mail.pop3.socketFactory.fallback | 布林值 | 如果設定為 true,則使用指定的套接字工廠類建立套接字失敗將導致使用 java.net.Socket 類建立套接字。預設為 true。 |
| mail.pop3.socketFactory.port | 整數 | 指定使用指定的套接字工廠時要連線到的埠。如果未設定,將使用預設埠。 |
| mail.pop3.ssl.enable | 布林值 | 如果設定為 true,則使用 SSL 連線並預設使用 SSL 埠。對於“pop3”協議,預設為 false;對於“pop3s”協議,預設為 true。 |
| mail.pop3.ssl.checkserveridentity | 布林值 | 如果設定為 true,則根據 RFC 2595 指定的檢查伺服器身份。預設為 false。 |
| mail.pop3.ssl.trust | 字串 | 如果設定,並且未指定套接字工廠,則啟用 MailSSLSocketFactory 的使用。 如果設定為“*”,則所有主機都受信任。 如果設定為以空格分隔的主機列表,則這些主機受信任。 否則,信任取決於伺服器提供的證書。 |
| mail.pop3.ssl.socketFactory | SSL 套接字工廠 | 如果設定為擴充套件 javax.net.ssl.SSLSocketFactory 類的類,則此類將用於建立 POP3 SSL 套接字。 |
| mail.pop3.ssl.socketFactory.class | 字串 | 如果設定,則指定擴充套件 javax.net.ssl.SSLSocketFactory 類的類的名稱。此類將用於建立 POP3 SSL 套接字。 |
| mail.pop3.ssl.socketFactory.port | 整數 | 指定使用指定的套接字工廠時要連線到的埠。如果未設定,將使用預設埠。 |
| mail.pop3.ssl.protocols | 字串 | 指定將為 SSL 連線啟用的 SSL 協議。屬性值是 javax.net.ssl.SSLSocket.setEnabledProtocols 方法可接受的標記的空格分隔列表。 |
| mail.pop3.starttls.enable | 布林值 | 如果為 true,則啟用 STLS 命令的使用(如果伺服器支援),以便在發出任何登入命令之前將連線切換到 TLS 保護的連線。預設為 false。 |
| mail.pop3.starttls.required | 布林值 | 如果為 true,則需要使用 STLS 命令。如果伺服器不支援 STLS 命令,或者命令失敗,則 connect 方法將失敗。預設為 false。 |
| mail.pop3.socks.host | 字串 | 指定將用於連線到郵件伺服器的 SOCKS5 代理伺服器的主機名。 |
| mail.pop3.socks.port | 字串 | 指定 SOCKS5 代理伺服器的埠號。 |
| mail.pop3.disabletop | 布林值 | 如果設定為 true,則不會使用 POP3 TOP 命令獲取郵件標頭。預設為 false。 |
| mail.pop3.forgettopheaders | 布林值 | 如果設定為 true,則可能已使用 POP3 TOP 命令檢索的標頭將被遺忘,並替換為作為 POP3 RETR 命令的一部分檢索的標頭。預設為 false。 |
| mail.pop3.filecache.enable | 布林值 | 如果設定為 true,則 POP3 提供程式將在臨時檔案中快取訊息資料,而不是在記憶體中。僅在訪問訊息內容時才會將訊息新增到快取中。訊息標頭始終在記憶體中快取(按需)。關閉資料夾或 JVM 終止時,將刪除檔案快取。預設為 false。 |
| mail.pop3.filecache.dir | 字串 | 如果啟用了檔案快取,則可以使用此屬性覆蓋 JDK 用於臨時檔案的預設目錄。 |
| mail.pop3.cachewriteto | 布林值 | 控制 POP3 訊息物件上 writeTo 方法的行為。如果設定為 true,並且尚未快取訊息內容,並且 ignoreList 為 null,則在寫入之前快取訊息。否則,訊息將直接流式傳輸到輸出流,而不會被快取。預設為 false。 |
| mail.pop3.keepmessagecontent | 布林值 | 如果此屬性設定為 true,則將保留對快取內容的硬引用,防止記憶體被重用,直到關閉資料夾或顯式取消快取內容的快取(使用 invalidate 方法)。預設為 false。 |
通常,應用程式不應直接使用此包中的類。相反,它們應使用javax.mail包(和子包)中定義的 API。應用程式絕不應直接構造POP3Store或POP3Folder的例項。相反,它們應使用 Session 方法 getStore 獲取適當的 Store 物件,並從中獲取 Folder 物件。
使用 POP3 伺服器的示例在第 檢查郵件 章中進行了演示。