android - 无法在 Android 中使用 Pop 接收邮件

标签 android jakarta-mail 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?

最佳答案

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

从 IMAP 切换到 POP3 需要更改协议(protocol)名称和主机名。查看JavaMail FAQ举些例子。协议(protocol)名称是“pop3s”,主机名是“pop.gmail.com”。

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

关于android - 无法在 Android 中使用 Pop 接收邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324379/

相关文章:

gmail - POP3、IMAP 和 Exchange 之间有什么区别?

java - Android - AsyncTask 上的 RuntimeException

android - Gradle : How to publish a Android library to local repository

java - 将 MimeMessage 对象消息作为常规转发格式转发,而不是 EML 文件中的附件

c# - 使用 OAuth2 在 Office 365 中进行 IMAP 身份验证

ssl - 从 outlook imap 服务器获取 offlineimap 的正确证书信息

Android 解析推送通知和新的 GCM 生成错误的设备 token 并解析推送通知不起作用

java - Android addListenerOnButton 问题

java - 无法在Servlet中通过SSL发送java邮件

sockets - Javamail不会在超时时完全关闭套接字