以下文章提供了在 Java 中刪除電子郵件的概述。 Java 中的刪除電子郵件可讓您刪除電子郵件以及傳送、轉發和接收電子郵件。它允許您使用 Message 類別 java 郵件 API 的 setFlag 選項刪除特定訊息,這是電子郵件發送階段之一。 Java 郵件 API 是電子郵件傳送階段之一,在讀取要傳送或接收的資料之前,請使用這些 jars mail.jar 和activation.jar 來執行 java 作業。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
在Java中刪除電子郵件可以選擇刪除電子郵件以及發送、轉發和接收電子郵件。它接受刪除使用 setFlag 選項(如 Message 類別的函數)的特定訊息。 session物件用於建立資料夾物件後開啟該資料夾對象,然後透過setFlag方法將store對象連接到目前主機,然後取得要刪除的訊息。若要刪除訊息,必須使用連接到訊息的標誌。各種狀態有多個標誌,其中一些是系統定義的,另一些是用戶定義的。內部類別 Flags 總是定義預先定義的標誌。
郵件總共可以透過4步驟刪除:
Session 物件維護與使用者會話相關的資料或修改設定。單一應用程式中的所有頁面都可以存取會話物件中包含的變量,該物件保存有關單一使用者的資料。名稱、ID 和首選項是經常保存在會話變數中的資訊範例。
將設計時元資料匯出到資料庫整合實例中,並應建立儲存 URL 來指定和建立儲存桶(如果尚不存在)。要遷移實例,我們必須稍後在設定過程中指定此 URL。然後利用應用程式遷移服務將自動完成這些任務。
不要求從儲存接收的資料夾物件確實存在於後端儲存中。使用exists方法檢查資料夾是否存在。資料夾是使用 create 方法建立的。最初,資料夾處於關閉狀態。幾種方法的文檔提到了它們在這種情況下有效的事實。呼叫資料夾的「開啟」函數將其開啟。除了打開和刪除之外,所有資料夾方法在此狀態下均有效。
存取 Gmail 或其他郵件伺服器。使用 IMAP 作為協議,我們顯示收件匣中的未讀電子郵件。之後您刪除第一封未讀電子郵件。如果我們在程式運行結束後打開收件箱,就可以準確地看到結果。
Flags主要支援將預先定義的flags聲明為內部類別:
以上標誌是系統定義和使用者定義的電子郵件在不同狀態下的一些常見用法。
取得session物件是進行刪除操作的第一步,之後我們可以建立store物件。為了確保儲存物件連接到本機或內部郵件伺服器憑證,我們也可以透過使用 getStore() 方法來檢索儲存對象,例如 Imap、Pop3、SMTP 等。資料夾物件是存取儲存物件的下一種方式收件匣等電子郵件或任何其他個人或公共存取資料夾。
透過使用 Message[] 數組,我們可以從特定資料夾中檢索訊息。為此,使用 getMessages() 方法是檢索它的路徑。我們知道Flags最重要的作用就是刪除所需的訊息。在這裡,我們可以使用名為 setFlag(FLAGS.Flag.DELETED, boolean) 的方法,這些條件驗證訊息並將標記設為在所需資料夾上刪除。
在java中,我們可以使用名為MailServerManager的介面來實作java預設類,如AbstractMailServerManager、OFBizMailServerManager和XMLMailServerManager。使用 String[] 數組,該數組表示允許建立、更新和刪除伺服器的 server_types。 create(MailServer實例)用於建立實例id為long類型的郵件伺服器。在這裡我們可以刪除伺服器實例id,例如void類型的delete(java.lang.Long mailServerId)。
下面給出的是提到的例子:
代碼:
package TestNG; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session; import javax.mail.Store; public class NewTest { public static void deletemail(String hst, String stype, String emailuser, String passwd) { 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, emailuser, passwd); Folder fld = st.getFolder("INBOX"); fld.open(Folder.READ_WRITE); BufferedReader rd = new BufferedReader(new InputStreamReader( System.in)); Message[] msgs = fld.getMessages(); System.out.println("msgs.length---" + msgs.length); for (int i = 0; i < msgs.length; i++) { Message ms = msgs[i]; System.out.println("---------------------------------"); System.out.println("Email Number " + (i + 1)); System.out.println("Email Subject: " + ms.getSubject()); System.out.println("From: " + ms.getFrom()[0]); String sub = ms.getSubject(); System.out.print("Do you want to delete this message [y/n] ? "); String res = rd.readLine(); if ("Y".equals(res) || "y".equals(res)) { ms.setFlag(Flags.Flag.DELETED, true); System.out.println("Marked DELETE for message: " + sub); } else if ("n".equals(res)) { break; } } fld.close(true); st.close(); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } catch (IOException io) { io.printStackTrace(); } } public static void main(String[] args) { String gmailhost = "pop.gmail.com"; String mailStoreType = "pop3"; String username = "[email protected]"; String password = "xodbizaoiqijifre"; deletemail(gmailhost, mailStoreType, username, password); } }
輸出:
說明:
除了發送、轉發和接收電子郵件的功能之外,還有此選項。 Message 類別的 setFlag 方法可用來刪除特定訊息。為了瞭解這一點,您需要熟悉 JavaMail API 的電子郵件傳送步驟。 POP 協定僅支援 Java 電子郵件中的郵件刪除。在建立儲存物件之前連接到目前處於活動狀態的主機以取得會話物件。取得要銷毀的訊息,建立資料夾對象,然後使用 setFlag 函數啟動它。
以下是提到的常見問題:
答案:我們可以選擇刪除電子郵件以及發送、轉發和接收電子郵件。若要刪除特定訊息,請使用 Message 類別的 setFlag 函數。在閱讀此範例以了解其含義之前,請先了解 JavaMail API 的電子郵件發送階段。
答案:POP協定僅支援java郵件中刪除的郵件。
答案: 要先取得會話對象,然後連接到目前主機並建構儲存對象。建立資料夾對象,然後啟動它。使用setFlag方法取得要刪除的訊息
以上是在Java中刪除電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!