# Mails abrufen mit IMAP



## mavinatic (1. Mrz 2010)

hallo ihr java-freaks ;-)

ich bin im rahmen meines "abschlussprojekts" der Höheren Berufsfachschule für Informatik einen MailClient zu programmieren, da wollte ich wissen ob es einen unterschied in der Funktion von PoP3 bzw IMAP gibt? Ich finde im internet nur Programme wo mails mit POP3 abgerufen werden und nicht mit IMAP?! Gibts dazu unterschiede... wenn ich die Properties Daten wechsele und auf IMAP umschreibe, dann bekomme ich trotzdem einen error...


```
public static ArrayList<Mail> recieveMail() throws Exception 
	{
				
		if (d.getHostType() == "pop3")
		{
		props = new Properties();
		props.setProperty("mail.pop3.host" , d.getHost());
		props.setProperty("mail.pop3.user", d.getUsername());
		props.setProperty("mail.pop3.password", d.getPassword());
		}
		
		if (d.getHostType() == "imap")
		{
		props = new Properties();
		props.setProperty("mail.imap.host" , d.getHost());
		props.setProperty("mail.imap.user", d.getUsername());
		props.setProperty("mail.imap.password", d.getPassword());
		}
	
		
		Session session = Session.getInstance( props, new javax.mail.Authenticator() 
		{ 
	          @Override protected PasswordAuthentication getPasswordAuthentication() 
	          { 
	            return new PasswordAuthentication( props.getProperty( "mail.pop3.user" ),props.getProperty( "mail.pop3.password" ) ); 
	          } 
	        } 
		);
		
		session.setDebug(false);
		
		Store store = session.getStore(d.getHostType());
		store.connect();
		
		Folder inbox = store.getFolder("inbox");
		inbox.open(Folder.READ_ONLY);
		
		Message message[] = inbox.getMessages();
		
		ServerMailList = new ArrayList<Mail>(); 
		
		
		for (int i=0; i<message.length; i++)
		{
		Message m = message[i];
		me = new Mail();
		me.setSubject(m.getSubject());
		me.setFrom(((InternetAddress)m.getFrom()[0]).getAddress());
		me.setDate(m.getSentDate().toString());
		if (m.isMimeType("text/plain"))
		{
			me.setContent(m.getContent().toString());
		}
		
		ServerMailList.add(me);
		}
		
		inbox.close(false);
		store.close();
		
		return ServerMailList;
		
	}
```

Danke im vorraus


----------



## FArt (1. Mrz 2010)

POP und IMAP sind völlig unterschiedliche Protokolle, die beide vom Server explizit unterstützt werden müssen.
Nur mit ändern der URL ist es da nicht getan...


----------



## tuxedo (1. Mrz 2010)

... und im Internet gibts unendlich viele Programme die IMAP können. Bestes Beispiel: Thunderbird.

Internet Message Access Protocol ? Wikipedia
Post Office Protocol ? Wikipedia


----------

