Heim  >  Artikel  >  Java  >  E-Mail in Java löschen

E-Mail in Java löschen

WBOY
WBOYOriginal
2024-08-30 15:56:40550Durchsuche

Der folgende Artikel enthält eine Übersicht zum Löschen von E-Mails in Java. Mit „E-Mail löschen“ in Java können Sie E-Mails löschen sowie senden, weiterleiten und empfangen. Sie können eine bestimmte Nachricht löschen, indem Sie die Option setFlag der Java-Mail-APIs der Nachrichtenklasse verwenden, was eine der Phasen des E-Mail-Versands darstellt. Java-Mail-APIs sind eine der Phasen des E-Mail-Versands vor dem Lesen der zu sendenden oder zu empfangenden Daten mithilfe dieser Jars mail.jar und activate.jar, um die Java-Vorgänge auszuführen.

E-Mail in Java löschen

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Wichtige Erkenntnisse

  • In der Anwendung verwenden wir Gmail und andere Mailserver.
  • Wir nutzen das IMAP-Protokoll, um die ungelesenen E-Mails aus dem Posteingang anzuzeigen.
  • Die erste ungelesene E-Mail wurde dann gelöscht.
  • Wir können das Ergebnis richtig beobachten, sobald die Ausführung der Anwendung abgeschlossen ist und wir den Posteingang geöffnet haben.
  • Das POP-Protokoll erlaubt nur das Löschen von Nachrichten.

Übersicht über das Löschen von E-Mails

Das Löschen von E-Mails in Java bietet die Möglichkeit, E-Mails zu löschen sowie zu senden, weiterzuleiten und zu empfangen. Es akzeptiert das Löschen einer bestimmten Nachricht, die die setFlag-Option wie die Funktion der Message-Klasse verwendet. Das Sitzungsobjekt wird verwendet, um das Ordnerobjekt nach seiner Erstellung zu öffnen und dann das Speicherobjekt mithilfe der setFlag-Methode mit dem aktuellen Hostcomputer zu verbinden und dann die zu löschende Nachricht abzurufen. Zum Löschen von Nachrichten ist das Arbeiten mit den mit den Nachrichten verbundenen Flags erforderlich. Es gibt mehrere Flags für verschiedene Zustände, von denen einige systemdefiniert und andere benutzerdefiniert sind. Die Flags der inneren Klasse definieren immer die vordefinierten Flags.

Wie lösche ich E-Mails programmgesteuert in Java?

Die E-Mail kann in insgesamt 4 Schritten gelöscht werden:

1. Sitzungsobjekt

Das Sitzungsobjekt verwaltet Daten oder ändert Einstellungen im Zusammenhang mit einer Benutzersitzung. Alle Seiten in einer einzelnen Anwendung können auf Variablen zugreifen, die in einem Sitzungsobjekt enthalten sind, das Daten über einen einzelnen Benutzer enthält. Name, ID und Präferenzen sind Beispiele für Informationen, die häufig in Sitzungsvariablen gespeichert werden.

2. Stellen Sie eine Verbindung zum aktuellen Host her und erstellen Sie das Speicherobjekt

Um Design-Time-Metadaten in eine Datenbank-Integrationsinstanz zu exportieren und die Speicher-URL zu erstellen, um einen Speicher-Bucket anzugeben und zu erstellen (falls noch keiner vorhanden ist). Um die Instanz zu migrieren, müssen wir diese URL später während des Konfigurationsvorgangs angeben. Durch die Nutzung des Application Migration Service werden diese Aufgaben dann automatisch erledigt.

3. Um den Ordner zum Objekt zu machen, starten Sie ihn dann

Es ist nicht erforderlich, dass ein von einem Speicher empfangenes Ordnerobjekt tatsächlich im Backend-Speicher vorhanden ist. Die Existenz des Ordners wird mit der Methode „exists“ überprüft. Mit der Methode create wird ein Ordner erstellt. Ein Ordner befindet sich zunächst im geschlossenen Zustand. In der Dokumentation mehrerer Methoden wird darauf hingewiesen, dass sie in diesem Zustand gültig sind. Durch Aufrufen der Funktion „Öffnen“ eines Ordners wird dieser geöffnet. Alle Ordnermethoden sind in diesem Zustand funktionsfähig, mit Ausnahme von „Öffnen“ und „Löschen“.

4. Rufen Sie mit der setFlag-Methode die zu löschende Nachricht ab

Um auf Gmail oder andere Mailserver zuzugreifen. Mit IMAP als Protokoll zeigen wir ungelesene E-Mails aus dem Posteingang an. Anschließend löschen Sie die erste ungelesene E-Mail. Wenn wir den Posteingang öffnen, nachdem das Programm ausgeführt wurde, können wir das Ergebnis genau sehen.

Flags werden hauptsächlich unterstützt, um die vordefinierten Flags als innere Klasse zu deklarieren:

  • Flags.Flag.Answered
  • Flags.Flag.Deleted
  • Flags.Flag.Recent
  • Flags.Flag.User

Die oben genannten Flags werden häufig in verschiedenen Zuständen sowohl für systemdefinierte als auch für benutzerdefinierte E-Mails verwendet.

E-Mail-API löschen

Das Abrufen des Sitzungsobjekts ist der erste Schritt, um mit dem Löschvorgang fortzufahren. Anschließend können wir das Speicherobjekt erstellen. Um sicherzustellen, dass das Store-Objekt zusätzlich mit den Anmeldeinformationen des Localhosts oder des internen Mailservers verbunden ist, können wir den Store abrufen, indem wir die Methode getStore() verwenden, um Protokolle wie Imap, Pop3, SMTP usw. abzurufen. Das Ordnerobjekt ist die nächste Möglichkeit für den Zugriff auf E-Mails wie der Posteingang oder andere persönliche oder öffentliche Zugriffsordner.

Mithilfe des Message[]-Arrays können wir die Nachrichten aus dem jeweiligen Ordner abrufen. Dafür ist die Verwendung der getMessages()-Methode der Pfad zum Abrufen. Wir wissen, dass Flags die wichtigste Rolle zum Löschen der erforderlichen Nachrichten spielen. Hier können wir die Methode setFlag(FLAGS.Flag.DELETED, boolean) verwenden. Diese Bedingungen validieren die Nachrichten und setzen das Flag als gelöscht für den erforderlichen Ordner.

Mailserver löschen

In Java können wir die Schnittstelle namens MailServerManager verwenden, um die Java-Standardklassen wie AbstractMailServerManager, OFBizMailServerManager und XMLMailServerManager zu implementieren. Mit Hilfe des String[]-Arrays, das die Servertypen angibt, die das Erstellen, Aktualisieren und Löschen der Server ermöglichten. Die create(MailServer-Instanz) zum Erstellen des Mailservers mit dem langen Typ Instanz-ID. Hier können wir die Serverinstanz-ID wie delete(java.lang.Long mailServerId) mit void-Typ löschen.

Beispiel für das Löschen von E-Mails in Java

Nachstehend finden Sie das genannte Beispiel:

Code:

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

Ausgabe:

E-Mail in Java löschen

Erklärung:

  • Im obigen Beispiel haben wir Mail- und IO-Pakete und ihre Standardklassen, Methoden usw. importiert.
  • Dann können wir mithilfe der Eigenschaftenklasse den Mailserver und andere Details konfigurieren.
  • Mithilfe der erforderlichen Klassen und ihrer Methoden können wir E-Mail-Vorgänge wie Erstellen, Löschen usw. ausführen.
  • For-Schleife, um die E-Mail-Daten zu iterieren und einen Try-Catch-Block zu verwenden, um die E-Mail-Ausnahmen abzurufen.
  • Wir können die Methode in der Hauptfunktion aufrufen, um die Operationen auszuführen.

Fazit

Neben der Möglichkeit, E-Mails zu senden, weiterzuleiten und zu empfangen, besteht auch diese Option. Mit der setFlag-Methode der Message-Klasse kann eine bestimmte Nachricht gelöscht werden. Um einen Sinn zu ergeben, müssen Sie mit den E-Mail-Versandschritten der JavaMail-API vertraut sein. Nur das Löschen von Nachrichten in Java-E-Mails wird vom POP-Protokoll unterstützt. Stellen Sie eine Verbindung zu dem Host her, der jetzt aktiv ist, bevor Sie das Speicherobjekt erstellen, um das Sitzungsobjekt abzurufen. Nehmen Sie die zu vernichtende Nachricht, erstellen Sie das Ordnerobjekt und starten Sie es dann mit der setFlag-Funktion.

FAQs

Im Folgenden sind die häufig gestellten Fragen aufgeführt:

Q1. Was ist das Löschen von E-Mails in Java?

Antwort: Wir haben die Möglichkeit, E-Mails zu löschen sowie zu senden, weiterzuleiten und zu empfangen. Um eine bestimmte Nachricht zu löschen, verwenden Sie die setFlag-Funktion der Message-Klasse. Lernen Sie die Phasen des E-Mail-Versands der JavaMail-API kennen, bevor Sie dieses Beispiel lesen, um es zu verstehen.

Q2. Welches Protokoll verwenden wir, um die E-Mail in Java zu löschen?

Antwort: Das POP-Protokoll wird verwendet, um nur in Java-Mails gelöschte Nachrichten zu unterstützen.

Q3. Wie lösche ich die E-Mail in Java?

Antwort: Um dann zuerst das Sitzungsobjekt abzurufen, stellen Sie eine Verbindung zum aktuellen Host her und erstellen Sie das Speicherobjekt. Erstellen Sie das Ordnerobjekt und starten Sie es. Rufen Sie mithilfe der setFlag-Methode die zu löschende Nachricht ab.

Das obige ist der detaillierte Inhalt vonE-Mail in Java löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn