Bei einem Programm versuche ich eine Verbindung zum imap Server von Google herzustellen, zwar stimmen ServerURL und Port, allerdings scheitert es an
.
EmailManager.java
Code:
javax.mail.NoSuchProviderException: No provider for imaps
EmailManager.java
Java:
package com.eichler.emailAFK;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import com.sun.mail.imap.IMAPStore;
public class EmailManager {
public static void getMail(Date startDate, User user) throws Exception { //ruft alle Emails bis zum Angegebenen Datum ab
final Properties props = new Properties();
System.out.println(user.getImap());
props.setProperty("mail.imap.host", user.getImap());
props.setProperty("mail.imap.user", user.getEmailAcc());
props.setProperty("mail.imap.password", user.getPwAcc());
props.setProperty("mail.imap.port", user.getImapPort());
props.setProperty( "mail.store.protocol", "imaps" );
props.setProperty("mail.imap.auth", "true");
props.setProperty("mail.imap.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
Security.setProperty("ssl.SocketFactory.provider",
"DummySSLSocketFactory");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(props
.getProperty("mail.imap.user"), props
.getProperty("mail.imap.password"));
}
});
session.setDebug(true);
IMAPStore store = (IMAPStore) session.getStore("imaps");
store.connect();
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message message[] = folder.getMessages();
for (int i = message.length - 1; i >= 0; i--) {
System.out.println();
if (message[i].getSentDate().before(startDate)) {
System.err.println("limit reached");
break;
}
}
folder.close(false);
store.close();
}
}