Я пытался написать приложение, которое периодически анализирует содержимое сообщений Gmail. Я прошел через FAQ по JavaMail и посмотрел несколько примеров из пакета загрузки JavaMail, но не смог заставить его работать. Код ниже в настоящее время вызывает следующую ошибку Gmail:
Хост не разрешен: imaps.gmail.com:993
Я также пробовал imap.gmail.com:143, но получаю:
Хост не разрешен: imap.gmail.com:143
Любая помощь или совет будет принята с благодарностью. GMailReader - это класс, который я использую, чтобы попытаться вернуть сообщения gmail imap:
public class GMailReader extends javax.mail.Authenticator {
private String mailhost = "imaps.gmail.com";
private String user;
private String password;
private Session session;
public GMailReader(String user, String password) {
this.user = user;
this.password = password;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "imaps");
props.setProperty("mail.imaps.host", mailhost);
props.put("mail.imaps.auth", "true");
props.put("mail.imaps.port", "993");
props.put("mail.imaps.socketFactory.port", "993");
props.put("mail.imaps.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.imaps.socketFactory.fallback", "false");
props.setProperty("mail.imaps.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
public synchronized Message[] readMail() throws Exception {
try {
Store store = session.getStore("imaps");
store.connect("imaps.gmail.com", user, password);
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
Message[] msgs = folder.getMessages(1, 10);
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);
return msgs;
} catch (Exception e) {
Log.e("readMail", e.getMessage(), e);
return null;
}
}
}