无法使用java程序从G-mail接收邮件

时间:2014-12-22 05:07:53

标签: java javamail

无法使用java程序从gmail获取邮件,它提供以下异常

javax.mail.NoSuchProviderException: No provider for pop3s
    at javax.mail.Session.getProvider(Session.java:455)
    at javax.mail.Session.getStore(Session.java:530)
    at javax.mail.Session.getStore(Session.java:510)
    at com.core.mail.ReceiveMail.<init>(ReceiveMail.java:31)
    at com.core.mail.ReceiveMail.main(ReceiveMail.java:57)

代码可以在我的笔记本电脑上运行,但是,当我在公司执行代码时,它会给我上述错误。

提前致谢。

1 个答案:

答案 0 :(得分:0)

public static void check(String host, String storeType, String user,String password) 
{
  try {

        //create properties field
        Properties properties = new Properties();

        properties.put("mail.pop3.host", host);
        properties.put("mail.pop3.port", "995");
        properties.put("mail.pop3.starttls.enable", "true");
        Session emailSession = Session.getDefaultInstance(properties);

        //create the POP3 store object and connect with the pop server
        Store store = emailSession.getStore("pop3s");

        store.connect(host, user, password);

        //create the folder object and open it
        Folder emailFolder = store.getFolder("INBOX");
        emailFolder.open(Folder.READ_ONLY);

       // retrieve the messages from the folder in an array and print it
       Message[] messages = emailFolder.getMessages();
       System.out.println("messages.length---" + messages.length);

       for (int i = 0, n = messages.length; i < n; i++) {
            Message message = messages[i];
            System.out.println("---------------------------------");
            System.out.println("Email Number " + (i + 1));
            System.out.println("Subject: " + message.getSubject());
            System.out.println("From: " + message.getFrom()[0]);
            System.out.println("Text: " + message.getContent().toString());

        }

       //close the store and folder objects
       emailFolder.close(false);
       store.close();

    } catch (NoSuchProviderException e) {
         e.printStackTrace();
    } catch (MessagingException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
  }
}