ホームページ  >  記事  >  Java  >  Javaでのメールの削除

Javaでのメールの削除

WBOY
WBOYオリジナル
2024-08-30 15:56:40512ブラウズ

次の記事では、Java での電子メールの削除の概要を説明します。 Java で電子メールを削除すると、電子メールを削除したり、送信、転送、受信したりできます。電子メール送信段階の 1 つである Message クラス Java mail API の setFlag オプションを使用して、特定のメッセージを削除できます。 Java メール API は、Java 操作を実行するために、これらの jar mail.jar および activity.jar を使用して送受信するデータを読み取る前の、電子メール送信段階の 1 つです。

Javaでのメールの削除

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

重要なポイント

  • アプリケーションでは、Gmail およびその他のメールサーバーを使用しています。
  • IMAP プロトコルを利用して、受信トレイの未読メールを表示しています。
  • 最初の未読メールは削除されました。
  • アプリケーションの実行が終了し、受信箱を開いた時点で、結果を適切に観察できます。
  • POP プロトコルではメッセージの削除のみが可能です。

メール削除の概要

Java での電子メールの削除には、電子メールを送信、転送、受信するだけでなく、削除するオプションもあります。 Message クラスの関数のような setFlag オプションを利用して、特定のメッセージを削除することができます。セッション オブジェクトは、フォルダー オブジェクトを作成した後、それを開き、setFlag メソッドを使用してストア オブジェクトを現在のホスト マシンに接続し、削除するメッセージを取得するために使用されます。メッセージを削除するには、メッセージに関連付けられたフラグを操作する必要があります。さまざまな状態に対していくつかのフラグがあり、その一部はシステム定義であり、その他はユーザー定義です。内部クラス Flags は常に事前定義されたフラグを定義します。

Java でプログラムによって電子メールを削除する方法

メールは全部で 4 つの手順で削除できます:

1.セッションオブジェクト

Session オブジェクトは、ユーザー セッションに関連するデータを維持したり、設定を変更したりします。単一アプリケーション内のすべてのページは、単一ユーザーに関するデータを保持するセッション オブジェクトに含まれる変数にアクセスできます。名前、ID、設定は、セッション変数に頻繁に保存される情報の例です。

2.現在のホストに接続し、ストレージ オブジェクトを構築します

デザイン時のメタデータをデータベース統合インスタンスにエクスポートするには、ストレージ URL を構築して、ストレージ バケットを指定して作成する必要があります (ストレージ バケットがまだ存在しない場合)。インスタンスを移行するには、後で構成手順中にこの URL を指定する必要があります。その後、アプリケーション移行サービスを利用すると、これらのタスクが自動的に完了します。

3.フォルダーをオブジェクトにするには、それを起動します

ストレージから受信したフォルダー オブジェクトがバックエンド ストアに実際に存在する必要はありません。フォルダーの存在は、exists メソッドを使用してチェックされます。フォルダーはcreateメソッドで作成します。初期状態では、フォルダーは閉じられた状態です。いくつかのメソッドのドキュメントには、これらのメソッドがこの状況でも有効であるという事実が記載されています。フォルダーの「open」関数を呼び出すと、フォルダーが開きます。この状態では、開くと削除を除き、すべてのフォルダー メソッドが機能します。

4. setFlagメソッドを使用して、削除するメッセージを取得します

Gmail またはその他のメール サーバーにアクセスするため。プロトコルとして IMAP を使用し、受信トレイの未読メールを表示します。その後、最初の未読メールを削除します。プログラムの実行終了後に受信箱を開くと、結果を正確に確認できます。

フラグは主に、事前定義されたフラグを内部クラスとして宣言するためにサポートされています。

  • フラグ.フラグ.回答済み
  • フラグ.フラグ.削除済み
  • フラグ.フラグ.最近
  • フラグ.フラグ.ユーザー

上記のフラグは、システム定義の電子メールとユーザー定義の電子メールの両方で、さまざまな状態で頻繁に使用されるいくつかの例です。

メール API の削除

セッション オブジェクトを取得することは、削除操作を続行するための最初のステップであり、その後、ストア オブジェクトを作成できます。ストア オブジェクトがローカルホストまたは内部メール サーバーの資格情報に接続されていることを確認するには、さらに 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 を削除できます。

Java でのメール削除の例

以下に挙げる例を示します:

コード:

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);
}
}

出力:

Javaでのメールの削除

説明:

  • 上記の例では、mail および io パッケージとそのデフォルトのクラス、メソッドなどをインポートしました。
  • 次に、Properties クラスを使用して、メール サーバーとその他の詳細を構成できます。
  • 必要なクラスとそのメソッドを使用して、作成、削除などのメール操作を実行できます。
  • For ループでメール データを反復処理し、try-catch ブロックを使用してメール例外を取得します。
  • main 関数でメソッドを呼び出して操作を実行できます。

結論

電子メールの送信、転送、受信機能に加えて、このオプションも存在します。 Message クラスの setFlag メソッドを使用して、特定のメッセージを削除できます。理解するには、JavaMail API の電子メール送信手順に精通している必要があります。 POP プロトコルでは、Java 電子メールのメッセージ削除のみがサポートされています。ストレージ オブジェクトを作成する前に、現在アクティブになっているホストに接続してセッション オブジェクトを取得します。破棄するメッセージを取得し、フォルダー オブジェクトを作成し、setFlag 関数を使用してそれを起動します。

よくある質問

以下に挙げる FAQ を示します。

Q1. Java でのメールの削除とは何ですか?

回答: 電子メールを送信、転送、受信するだけでなく、削除するオプションもあります。特定のメッセージを削除するには、Message クラスの setFlag 関数を利用します。この例を読んで理解する前に、JavaMail API の電子メール送信段階について学習してください。

Q2. Java でメールを削除するにはどのプロトコルを使用しますか?

答え: POP プロトコルは、Java メールで削除されたメッセージのみをサポートするために使用されます。

Q3. Javaでメールを削除するには?

答え: まずセッション オブジェクトを取得するには、次に現在のホストに接続してストレージ オブジェクトを構築します。フォルダーをオブジェクトにして起動します。 setFlagメソッドを使用して、削除するメッセージを取得します。

以上がJavaでのメールの削除の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。