次の記事では、Java での電子メールの削除の概要を説明します。 Java で電子メールを削除すると、電子メールを削除したり、送信、転送、受信したりできます。電子メール送信段階の 1 つである Message クラス Java mail API の setFlag オプションを使用して、特定のメッセージを削除できます。 Java メール API は、Java 操作を実行するために、これらの jar mail.jar および activity.jar を使用して送受信するデータを読み取る前の、電子メール送信段階の 1 つです。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
Java での電子メールの削除には、電子メールを送信、転送、受信するだけでなく、削除するオプションもあります。 Message クラスの関数のような setFlag オプションを利用して、特定のメッセージを削除することができます。セッション オブジェクトは、フォルダー オブジェクトを作成した後、それを開き、setFlag メソッドを使用してストア オブジェクトを現在のホスト マシンに接続し、削除するメッセージを取得するために使用されます。メッセージを削除するには、メッセージに関連付けられたフラグを操作する必要があります。さまざまな状態に対していくつかのフラグがあり、その一部はシステム定義であり、その他はユーザー定義です。内部クラス Flags は常に事前定義されたフラグを定義します。
メールは全部で 4 つの手順で削除できます:
Session オブジェクトは、ユーザー セッションに関連するデータを維持したり、設定を変更したりします。単一アプリケーション内のすべてのページは、単一ユーザーに関するデータを保持するセッション オブジェクトに含まれる変数にアクセスできます。名前、ID、設定は、セッション変数に頻繁に保存される情報の例です。
デザイン時のメタデータをデータベース統合インスタンスにエクスポートするには、ストレージ URL を構築して、ストレージ バケットを指定して作成する必要があります (ストレージ バケットがまだ存在しない場合)。インスタンスを移行するには、後で構成手順中にこの URL を指定する必要があります。その後、アプリケーション移行サービスを利用すると、これらのタスクが自動的に完了します。
ストレージから受信したフォルダー オブジェクトがバックエンド ストアに実際に存在する必要はありません。フォルダーの存在は、exists メソッドを使用してチェックされます。フォルダーはcreateメソッドで作成します。初期状態では、フォルダーは閉じられた状態です。いくつかのメソッドのドキュメントには、これらのメソッドがこの状況でも有効であるという事実が記載されています。フォルダーの「open」関数を呼び出すと、フォルダーが開きます。この状態では、開くと削除を除き、すべてのフォルダー メソッドが機能します。
Gmail またはその他のメール サーバーにアクセスするため。プロトコルとして IMAP を使用し、受信トレイの未読メールを表示します。その後、最初の未読メールを削除します。プログラムの実行終了後に受信箱を開くと、結果を正確に確認できます。
フラグは主に、事前定義されたフラグを内部クラスとして宣言するためにサポートされています。
上記のフラグは、システム定義の電子メールとユーザー定義の電子メールの両方で、さまざまな状態で頻繁に使用されるいくつかの例です。
セッション オブジェクトを取得することは、削除操作を続行するための最初のステップであり、その後、ストア オブジェクトを作成できます。ストア オブジェクトがローカルホストまたは内部メール サーバーの資格情報に接続されていることを確認するには、さらに getStore() メソッドを使用してストアを取得し、Imap、Pop3、SMTP などのプロトコルを取得します。フォルダー オブジェクトは、フォルダー オブジェクトにアクセスするための次の方法です。受信トレイやその他の個人またはパブリック アクセス フォルダーなどのメール。
Message[] 配列を使用すると、特定のフォルダーからメッセージを取得できます。そのためには、 getMessages() メソッドを使用してそれを取得するパスを使用します。 Flags は必要なメッセージを削除する最も重要な役割であることがわかっています。ここでは、setFlag(FLAGS.Flag.DELETED, boolean) というメソッドを使用できます。これらの条件はメッセージを検証し、必要なフォルダーで削除済みとしてフラグを設定します。
Java では、MailServerManager と呼ばれるインターフェースを使用して、AbstractMailServerManager、OFBizMailServerManager、XMLMailServerManager などの Java デフォルト クラスを実装できます。サーバーの作成、更新、削除を許可するserver_typesを示す String[] 配列を利用します。インスタンスIDがlong型のメールサーバーを作成するためのcreate(MailServerインスタンス)。ここでは、void 型を使用して delete(java.lang.Long mailServerId) のようにサーバー インスタンス ID を削除できます。
以下に挙げる例を示します:
コード:
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 関数を使用してそれを起動します。
以下に挙げる FAQ を示します。
回答: 電子メールを送信、転送、受信するだけでなく、削除するオプションもあります。特定のメッセージを削除するには、Message クラスの setFlag 関数を利用します。この例を読んで理解する前に、JavaMail API の電子メール送信段階について学習してください。
答え: POP プロトコルは、Java メールで削除されたメッセージのみをサポートするために使用されます。
答え: まずセッション オブジェクトを取得するには、次に現在のホストに接続してストレージ オブジェクトを構築します。フォルダーをオブジェクトにして起動します。 setFlagメソッドを使用して、削除するメッセージを取得します。
以上がJavaでのメールの削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。