SORU
14 EYLÜL 2008, Pazar


Java uygulaması kullanarak IMAP içine GMail den gelen mail

Bir Java uygulaması JavaMail ve IMAP kullanarak GMail iletileri erişmek istiyorum. Neden bir SocketTimeoutException alıyorum?

İşte benim kod:

Properties props = System.getProperties();
props.setProperty("mail.imap.host", "imap.gmail.com");
props.setProperty("mail.imap.port", "993");
props.setProperty("mail.imap.connectiontimeout", "5000");
props.setProperty("mail.imap.timeout", "5000");

try {
  Session session = Session.getDefaultInstance(props, new MyAuthenticator());
  URLName urlName = new URLName("imap://MYUSERNAME@gmail.com:MYPASSWORD@imap.gmail.com");
  Store store = session.getStore(urlName);
  if (!store.isConnected()) {
    store.connect();
  }
} catch (NoSuchProviderException e) {
  e.printStackTrace();
  System.exit(1);
} catch (MessagingException e) {
  e.printStackTrace();
  System.exit(2);
}

"Sonsuza dek" zaman aşımı için. kabul etmedi, böylece zaman aşımı değerlerini ayarlayın Ayrıca, MyAuthenticator da URL ile gereksiz görünüyor kullanıcı adı ve şifre vardır. Protokolü belirtmek için başka bir yolu var mı? (IMAP için JavaDoc onu görmedim.)

CEVAP
14 EYLÜL 2008, Pazar


Imaps kullanarak harika bir öneri oldu. Cevapların hiçbiri benim için çalıştı sağlanan, biraz daha araştırdım ve çalışan bir şey buldum. Benim kod gibi görünüyor.

Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
  Session session = Session.getDefaultInstance(props, null);
  Store store = session.getStore("imaps");
  store.connect("imap.gmail.com", "<username>@gmail.com", "<password>");
  ...
} catch (NoSuchProviderException e) {
  e.printStackTrace();
  System.exit(1);
} catch (MessagingException e) {
  e.printStackTrace();
  System.exit(2);
}

Bu resmin dışında gereksiz Doğrulayıcı alır çünkü çok güzel. Bu sslnotes.txt başımı spin yapmak için çalıştı sevindim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005