Есть ли какие-либо хорошие примеры короткого кода, которые просто читают новое сообщение Gmail?

Я пытался записать приложение, которое периодически анализирует содержание сообщений Gmail. Я был через JavaMail FAQ, и я посмотрел на многие примеры в пакете загрузки 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; 
        } 
    } 
}
8
задан jacknad 2 August 2010 в 13:02
поделиться

1 ответ

Я нашел полезный пример здесь . Моя ошибка заключалась в использовании «mail.transport.protocol», а не «mail.store.protocol».

5
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: