2016-11-04 2 views
0

J'ai essayé beaucoup de choses de multiples ressources comme Read Inbox Java2s et How to get the list of available folders in a mail account using JavaMailLire les messages envoyés à l'aide smtp java

J'envoie des e-mails avec succès, mais pour être sûr du courrier est envoyé, j'ai besoin avec succès pour lire des emails à partir du dossier des éléments envoyés Est-ce possible avec smtp? si oui, comment?

Actuellement, je suis coincé même dans la connexion avec Stroe. Je trouve aucun moyen de franchir les étapes Store store = session.getStore(); et store.connect();

Je ne sais pas à propos imap ou pop3. Ils n'ont peut-être même pas été configurés sur notre serveur, mais si smtp ne fait rien, alors je suis prêt à traiter avec ces protocoles, bien que j'envoie des mails en utilisant stmp pour le moment. J'ai essayé beaucoup de modifications dans mon code suivant, mais rien n'aider

 String host = "mysite.smtp.com"; 
     Properties props = new Properties(); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", host); 
     props.put("mail.smtp.port", "myport"); 
     props.put("mail.smtp.auth", "true"); 


     Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       String user = "myname"; 
       String password = "mypassword"; 
       return new PasswordAuthentication(user, password); 
      } 
     }); 
     Store store = session.getStore(); // had tried writing "imaps" here 
     store.connect(host, null, null); 
     //store.connect(); also tried this 

     Folder inbox = store.getFolder("INBOX"); //actually i need "SENT" 
     if (inbox == null) { 
      System.out.println("No INBOX"); 
      System.exit(1); 
     } 
     inbox.open(Folder.READ_ONLY); 

     Message[] messages = inbox.getMessages(); 
     for (int i = 0; i < messages.length; i++) { 
      System.out.println("Message " + (i + 1)); 
      messages[i].writeTo(System.out); 
     } 
     inbox.close(false); 
     store.close(); 
+0

Référez-vous à [link] (https://stackoverflow.com/questions/14730384/how-to-save-sent-items-mail-using-the -java-mail-api/48658249 # 48658249) Enregistrer le courrier envoyé à l'aide de l'API JAVA MAIL – Deepanjan

Répondre

1

Vous ne pouvez pas utiliser smtp pour lire des emails, vous devez utiliser imap. pop3 ne vous aidera pas car il vous permet seulement de lire la boîte de réception. En fonction de ce que vous entendez par "envoyé avec succès", un retour réussi de la méthode d'envoi vous dira ce que vous voulez savoir.

Notez également que selon le serveur de messagerie que vous utilisez, les messages envoyés n'apparaissent pas automatiquement dans un dossier "Messages envoyés"; vous pourriez avoir besoin de les copier vous-même après avoir envoyé le message. (Gmail le fait automatiquement, mais pas tous les autres serveurs.)

Si ce que vous voulez vraiment savoir est que le message a été livré avec succès au (x) serveur (s) de messagerie de destination et que toutes les adresses étaient valides, c'est plus difficile. Le JavaMail FAQ a plus d'informations.

0

Je sais que je réponds en retard. J'ai rencontré des problèmes assez similaires tout en maintenant un logiciel utilisant largement les fonctionnalités d'envoi de courrier. J'ai finalement créé une extension JUnit pour écrire des tests d'intégration avec une émulation de serveur SMTP.

Veuillez jeter un coup d'œil à github.com/sleroy/fakesmtp-junit-runner/. En passant, c'est open-source.

0

Se reporter ce lien:

How to save sent items mail using the Java mail API?

CourrielEnvoyé service en utilisant l'API JavaMail

Notez également que selon le serveur de messagerie que vous utilisez, les messages envoyés ne semblent pas automatiquement dans un " Messages envoyés "dossier; vous pourriez avoir besoin de les copier vous-même après avoir envoyé le message. (Gmail le fait automatiquement, mais pas tous les autres serveurs.)