Maison  >  Article  >  Java  >  Supprimer un e-mail en Java

Supprimer un e-mail en Java

WBOY
WBOYoriginal
2024-08-30 15:56:40511parcourir

L'article suivant fournit un aperçu de la suppression d'e-mails en Java. Supprimer les e-mails en Java vous permet de supprimer des e-mails ainsi que de les envoyer, les transférer et les recevoir. Il vous permet de supprimer un message spécifique en utilisant l'option setFlag des API de messagerie Java de la classe Message, qui est l'une des étapes d'envoi d'e-mails. Les API de messagerie Java sont une des étapes d'envoi d'email avant la lecture des données à envoyer ou à recevoir à l'aide de ces jars mail.jar et activation.jar pour réaliser les opérations java.

Supprimer un e-mail en Java

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Points clés à retenir

  • Dans l'application, nous utilisons Gmail et d'autres serveurs de messagerie.
  • Nous utilisons le protocole IMAP pour afficher les e-mails non lus de la boîte de réception.
  • Le premier email non lu a ensuite été supprimé.
  • Nous pouvons observer correctement le résultat une fois que l'application a fini de fonctionner et que nous avons ouvert la boîte de réception.
  • Le protocole POP permet uniquement la suppression des messages.

Présentation de la suppression d'e-mails

La suppression d'e-mails en Java offre la possibilité de supprimer des e-mails ainsi que de les envoyer, les transférer et les recevoir. Il accepte de supprimer un message spécifique qui utilise l'option setFlag comme fonction de la classe Message. L'objet session est utilisé pour ouvrir l'objet dossier après l'avoir créé, puis pour connecter l'objet magasin à la machine hôte actuelle à l'aide de la méthode setFlag, puis pour obtenir le message à supprimer. Travailler avec les Flags connectés aux messages est nécessaire pour la suppression des messages. Il existe plusieurs indicateurs pour différents états, dont certains sont définis par le système et d'autres par l'utilisateur. La classe interne Flags définit toujours les drapeaux prédéfinis.

Comment supprimer un e-mail par programme en Java ?

L'e-mail peut être supprimé en 4 étapes au total :

1. Objet de session

L'objet Session conserve les données ou modifie les paramètres liés à une session utilisateur. Toutes les pages d'une même application peuvent accéder aux variables contenues dans un objet de session, qui contient des données sur un seul utilisateur. Le nom, l'identifiant et les préférences sont des exemples d'informations fréquemment enregistrées dans les variables de session.

2. Connectez-vous à l'hôte actuel et construisez l'objet de stockage

Pour exporter les métadonnées au moment de la conception dans une instance d'intégration de base de données, vous devez créer l'URL de stockage pour spécifier et créer un compartiment de stockage (s'il n'en existe pas déjà un). Pour migrer l'instance, nous devons préciser cette URL ultérieurement lors de la procédure de configuration. Ensuite, l'utilisation du service de migration d'applications effectuera automatiquement ces tâches.

3. Pour faire du dossier un objet, puis lancez-le

Il n'est pas nécessaire qu'un objet Folder reçu d'un stockage existe réellement dans le magasin backend. L’existence du dossier est vérifiée à l’aide de la méthode exist. Un dossier est créé avec la méthode create. Initialement, un dossier est dans un état fermé. La documentation de plusieurs méthodes mentionne qu'elles sont valables dans cette condition. L’appel de la fonction « ouvrir » d’un dossier l’ouvre. Toutes les méthodes de dossier sont fonctionnelles dans cet état à l'exception de l'ouverture et de la suppression.

4. A l'aide de la méthode setFlag, obtenez le message à supprimer

Pour accéder à Gmail ou à d'autres serveurs de messagerie. En utilisant IMAP comme protocole, nous affichons les e-mails non lus depuis la boîte de réception. Après quoi, vous supprimez le premier e-mail non lu. Si nous ouvrons la boîte de réception une fois le programme terminé, nous pouvons voir avec précision le résultat.

Les drapeaux sont principalement pris en charge pour déclarer les drapeaux prédéfinis comme une classe interne :

  • Drapeaux.Flag.Réponse
  • Drapeaux.Flag.Supprimé
  • Drapeaux.Flag.Récents
  • Flags.Flag.Utilisateur

Les indicateurs ci-dessus sont des utilisations fréquentes dans différents États pour les e-mails définis par le système et définis par l'utilisateur.

Suppression de l'API de messagerie

Obtenir l'objet de session est la première étape pour procéder à l'opération de suppression, après quoi nous pouvons créer l'objet de magasin. Pour nous assurer que l'objet de magasin est connecté aux informations d'identification de l'hôte local ou du serveur de messagerie interne, nous pouvons également obtenir le magasin en utilisant la méthode getStore() pour récupérer le protocole comme Imap, Pop3, SMTP, etc. L'objet dossier est le prochain moyen d'accéder au des e-mails comme la boîte de réception ou tout autre dossier d'accès personnel ou public.

En utilisant le tableau Message[], nous pouvons récupérer les messages du dossier spécifique. Pour cela, l'utilisation de la méthode getMessages() est le chemin pour le récupérer. Nous savons que Flags joue le rôle le plus important pour supprimer les messages requis. Ici, nous pouvons utiliser la méthode appelée setFlag(FLAGS.Flag.DELETED, boolean) ces conditions valident les messages et définissent le drapeau comme supprimé sur le dossier requis.

Suppression du serveur de messagerie

En Java, nous pouvons utiliser l'interface appelée MailServerManager pour implémenter les classes Java par défaut telles que AbstractMailServerManager, OFBizMailServerManager et XMLMailServerManager. À l'aide du tableau String[] qui désigne les types de serveur qui ont permis de créer, mettre à jour et supprimer les serveurs. Le create (instance MailServer) pour créer le serveur de messagerie avec le type d'identifiant d'instance long. Ici, nous pouvons supprimer l'identifiant de l'instance du serveur comme delete(java.lang.Long mailServerId) avec le type void.

Exemple de suppression d'e-mails en Java

Vous trouverez ci-dessous l'exemple mentionné :

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

Sortie :

Supprimer un e-mail en Java

Explication :

  • Dans l'exemple ci-dessus, nous avons importé les packages mail et io ainsi que leurs classes, méthodes, etc. par défaut.
  • Ensuite, en utilisant la classe Properties, nous pouvons configurer le serveur de messagerie et d'autres détails.
  • En utilisant les classes requises et leurs méthodes, nous pouvons effectuer des opérations de messagerie telles que créer, supprimer, etc.
  • Boucle For pour parcourir les données de courrier et utiliser un bloc try-catch pour obtenir les exceptions de courrier.
  • Nous pouvons appeler la méthode dans la fonction principale pour exécuter les opérations.

Conclusion

En plus de la possibilité d'envoyer, de transférer et de recevoir des e-mails, cette option existe également. La méthode setFlag de la classe Message peut être utilisée pour supprimer un message spécifique. Pour avoir du sens, vous devez être familier avec les étapes d'envoi d'e-mails de l'API JavaMail. Seule la suppression des messages dans la messagerie Java est prise en charge par le protocole POP. Connectez-vous à l'hôte qui est désormais actif avant de créer l'objet de stockage pour obtenir l'objet de session. Prenez le message à détruire, créez l'objet dossier, puis lancez-le à l'aide de la fonction setFlag.

FAQ

Vous trouverez ci-dessous les FAQ mentionnées :

Q1. Qu'est-ce que la suppression d'e-mails en Java ?

Réponse : Nous avons la possibilité de supprimer des e-mails ainsi que de les envoyer, les transférer et les recevoir. Pour supprimer un message spécifique, utilisez la fonction setFlag de la classe Message. Apprenez les étapes d'envoi d'e-mails de l'API JavaMail avant de lire cet exemple pour en comprendre le sens.

Q2. Quel protocole utilisons-nous pour supprimer l'e-mail en Java ?

Réponse : Le protocole POP est utilisé pour prendre en charge uniquement les messages supprimés dans les mails Java.

Q3. Comment supprimer l'email en java ?

Réponse : Pour obtenir d'abord l'objet de session, connectez-vous à l'hôte actuel et construisez l'objet de stockage. Créez l'objet dossier, puis lancez-le. A l'aide de la méthode setFlag, obtenez le message à supprimer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Transfert d'e-mails en JavaArticle suivant:Transfert d'e-mails en Java