Java Mail Api

lernen.2007

Erfahrenes Mitglied
Hallo,

ich kann bis jetzt mit diesen Code alle meine E-Mails lesen:

Code:
System.out.println("HostName: " + host);
   System.out.println("Benutzer: " +  user);
   System.out.println("Passwort: " + passwd);
   
   try {
   Session session = Session.getDefaultInstance( new Properties() ); 
    Store store = session.getStore( "pop3" ); 
    store.connect( host, user, passwd ); 
    Folder folder = store.getFolder( "INBOX" ); 
    folder.open( Folder.READ_ONLY ); 
    
    Message[] message = folder.getMessages();
    
    for ( int i = 0; i < message.length; i++ ) { 
        
      Message m = message[i]; 
      System.out.println( "Nachricht: " + i ); 
      System.out.println( "From: " + m.getFrom()[0] ); 
      System.out.println( "Subject: " + m.getSubject() ); 
      Multipart mp = (Multipart) m.getContent();
      
      for ( int j = 0; j < mp.getCount(); j++ ) { 
        Part part = mp.getBodyPart( j ); 
        String disposition = part.getDisposition();
        
        if ( disposition == null ) { 
            
          MimeBodyPart mimePart = (MimeBodyPart)part; 
          
          if ( mimePart.isMimeType("text/plain") ) { 
            BufferedReader in = new BufferedReader(new InputStreamReader(mimePart.getInputStream()) ); 
            
            //Lesen bis zu Datei Ende
            while(in.ready() == true) {
            
                for ( String line; (line=in.readLine()) != null; ) 
                         setEmail(line);
                }
            
            }
            
        } 
      } 
    } 
    folder.close( false ); 
    store.close(); 
    
   } catch(Exception ex) {
       ex.printStackTrace();
   }



Aber wie kann man es denn so machen, dass ich nur die ungelesenen bzw. neu eingetroffenen E-Mails dann hole. Nicht alle E-Mails.

Gruß
erkan
 
Hallo,

schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.util.Properties;

import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.search.FlagTerm;

/**
 * @author Thomas.Darimont
 * 
 */
public class JavaMailExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        Session session = Session.getInstance(new Properties());
        Store store = session.getStore("imap");
        store.connect("imap.someProvider.de", "theUsername", "thePassword");
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);
        Message[] recentMessage = folder.search(new FlagTerm(new Flags(
                Flags.Flag.RECENT), true));
        for (Message message : recentMessage) {
            System.out.println(message.getFrom()[0] + " -> "
                    + message.getSubject());
        }

        store.close();
    }
}

Gruß Tom
 
Hallo,

seit Stunden bin ich dabei zu suchen, wie ich den Anhang von einen empfangenen Email öffnen kann. Aber leider habe ich noch nichts gefunden.

Kann mir vielleicht jemand weiterhelfen?

Gruß
erkan
 
Hallo,

ich suche seit Stundent etwas: Wenn ein neue E-Mail ankommt dann soll einfach ein Event ausgelöst werden. Gibt es denn so etwas in java mail api oder in anderen Bibliotheken? Bis jetzt mache ich nur so, dass ich mit Thread.sleep(1000) warte und dann noch einmal nach neuen Mail suche.

Gruß
erkan
 
Zurück