2017-05-18 2 views
1

J'apprends Javamail ces jours qui suivent ce site: http://www.tutorialspoint.com/javamail_api/Est-il possible d'utiliser Javamail pour recevoir des mails dans Android

je teste l'envoi & ajouté quelques trucs supplémentaires parce qu'il était sur Android & cela a fonctionné!

Mais les choses ont complètement changé quand j'ai essayé de suivre la réception Tutoriel email qui me fait me demande ..

Est-il possible de rendre ce code: https://www.tutorialspoint.com/javamail_api/javamail_api_fetching_emails.htm

travaux sur l'interface XML android mais en utilisant ?!

+0

Oui, il est possible d'utiliser JavaMail sur Android; assurez-vous de suivre les instructions [ici] (https://javaee.github.io/javamail/Android). Si cela ne fonctionne pas, il existe des conseils de débogage dans la [FAQ JavaMail] (https://javaee.github.io/javamail/FAQ#debug). Vous pouvez également trouver de nombreux exemples de programmes sur le site Web [JavaMail] (https://javaee.github.io/javamail/#Samples), mais vous devrez les adapter pour Android. Désolé, je n'ai aucune idée de ce que signifie "utiliser l'interface XML" dans ce contexte puisque je ne suis pas un expert Android. –

Répondre

0

Vous pouvez utiliser le code suivant:

public static void receiveEmail(String pop3Host, String storeType, user, String password) { 
     try { 
      //1) get the session object 
      Properties properties = new Properties(); 
      properties.put("mail.pop3.host", pop3Host); 
      Session emailSession = Session.getDefaultInstance(properties); 

      //2) create the POP3 store object and connect with the pop server 
      POP3Store emailStore = (POP3Store) emailSession.getStore(storeType); 
      emailStore.connect(user, password); 

      //3) create the folder object and open it 
      Folder emailFolder = emailStore.getFolder("INBOX"); 
      emailFolder.open(Folder.READ_ONLY); 

      //4) retrieve the messages from the folder in an array and print it 
      Message[] messages = emailFolder.getMessages(); 
      for (int i = 0; i < messages.length; i++) { 
       Message message = messages[i]; 
       System.out.println("---------------------------------"); 
       System.out.println("Email Number " + (i + 1)); 
       System.out.println("Subject: " + message.getSubject()); 
       System.out.println("From: " + message.getFrom()[0]); 
       System.out.println("Text: " + message.getContent().toString()); 
      } 

      //5) close the store and folder objects 
      emailFolder.close(false); 
      emailStore.close(); 

     } catch (NoSuchProviderException e) { 
      e.printStackTrace(); 
     } catch (MessagingException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

appeler votre méthode passe certains paramètres:

String host = "pop.gmail.com";//change accordingly 
String mailStoreType = "pop3"; 
String username= "[email protected]"; 
String password= "xxxxx";//change accordingly 

receiveEmail(host, mailStoreType, username, password); 

Source: Steps for receiving the email using JavaMail API

+0

Je l'ai testé dans AsyncTask classe étendue et passer une valeur à ListView comme test à la liste, mais je reçois null – Sarah

+0

@Sarah avez-vous donner cette autorisation dans votre manifeste? Darush

+0

oui, je mets une chaîne et l'assigne à message.getSubject() mais je reçois à chaque fois – Sarah