无法在Android中收到Pop的邮件

时间:2012-04-25 21:53:04

标签: android javamail imap pop3

我可以使用此代码示例接收带有Imap的邮件:

URLName server = new URLName("imaps://" + username + ":"+ password + "@imap.gmail.com/INBOX");
    Session session = Session.getDefaultInstance(new Properties(), null);
    Folder folder = session.getFolder(server);
if (folder == null) 
{
    System.exit(0);
}
   folder.open(Folder.READ_ONLY);
   Message[] messages = folder.getMessages();

但有时Imap不提供任何服务,在那些时候我想使用Pop,但我不能将它与我的代码一起使用。它与使用接收邮件的其他代码不同。但在Android中,只有这段代码正常运行。

我应该在此代码中更改哪些内容以使用Pop?

2 个答案:

答案 0 :(得分:1)

首先,有一个很好的URLName构造函数,它将所有组件作为单独的参数,因此您不必进行字符串连接。

从IMAP切换到POP3需要更改协议名称和主机名。有关示例,请参阅JavaMail FAQ。协议名称为“pop3s”,主机名为“pop.gmail.com”。

最后,您应该使用Session.getInstance而不是Session.getDefaultInstance。比较两种方法的javadoc来理解原因。

答案 1 :(得分:0)

这个怎么样。真的为我工作!!(资料来源:here

            String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

    Properties pop3Props = new Properties();

    pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
    pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false");
    pop3Props.setProperty("mail.pop3.port", "995");
    pop3Props.setProperty("mail.pop3.socketFactory.port", "995");

    URLName url = new URLName("pop3", "pop.gmail.com", 995, "","youremailid@gmail.com",yourpassword);
    Session session = Session.getInstance(pop3Props, null);
    Store store = new POP3SSLStore(session, url);
    try {
        store.connect();
    } catch (MessagingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    Folder folder = null;
    try {
        folder = store.getDefaultFolder();

        folder = folder.getFolder("INBOX");

    } catch (MessagingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    if (folder == null) {
        System.exit(0);
    }
    try {
        folder.open(Folder.READ_ONLY);
    } catch (MessagingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

尝试通过商店对象检索文件夹。并且还提到您想要检索的文件夹是INBOX!另请注意,在设置中,端口号是995表格弹出。(您可以保留前六行原样。)< / p>