java - 检查 mail.domain.com 是 POP 还是 IMAP

标签 java android imap pop3

如何检查服务器是否使用POP或IMAP协议(protocol)? mail.domain.com 中没有提及它,但可以访问。 当我知道该邮件服务器的用户名和密码时,我想检查邮件服务器使用哪个协议(protocol),而不从中下载任何数据。

最佳答案

某些服务器使用 DNS SRV 记录提供此信息,如 RFC 6186 - Use of SRV Records for Locating Email Submission/Access Services 中所述。 。您可以查找 _imap._tcp.domain.com_imaps._tcp.domain.com_pop3._tcp.domain.com 的 SRV 记录code> 和 _pop3s._tcp.domain.com,并查看存在哪些。

您可以使用 dig 实用程序从命令行尝试此操作。例如,要查看 Gmail 提供哪些服务:

$ dig +short -t SRV _imap._tcp.gmail.com
0 0 0 .

$ dig +short -t SRV _imaps._tcp.gmail.com
5 0 993 imap.gmail.com.

$ dig +short -t SRV _pop3._tcp.gmail.com
0 0 0 .

$ dig +short -t SRV _pop3s._tcp.gmail.com
20 0 995 pop.gmail.com.

结果中的前两个数字是优先级和权重,如果只有一个答案,我们可以忽略它们。第三个数字是端口号,最后的值是域名。 0 . 是一个特殊值,表示不提供该服务,因此从上面的结果我们可以看出:

  • Gmail 不提供未加密的 IMAP 访问。
  • Gmail 在主机 imap.gmail.com 的端口 993 上提供加密的 IMAP 访问。
  • Gmail 不提供未加密的 POP3 访问。
  • Gmail 在主机 pop.gmail.com 的端口 995 上提供加密的 POP3 访问。
<小时/>

但是,大多数服务器不会为电子邮件设置 DNS SRV 记录,因此大多数时候您唯一的机会就是尝试连接并查看服务器是否应答。

关于java - 检查 mail.domain.com 是 POP 还是 IMAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648271/

相关文章:

android - 在没有监听器的情况下从 Android 传感器获取数据

amazon-web-services - 在 amazon ec2 linux 2 上安装 php-imap

java - 为什么成功创建文件夹后出现FolderNotFoundException?

java - 正则表达式性能 VS 纯粹迭代的最佳实践

java - 如何分析在 cloud foundry 上运行的 spring boot webapp 的内存?

java - 使用 JCA 与 JBoss AS-7 集成 Tuxedo

python - 在python中解码这种类型的字符串

java - 为 ConcurrentHashMap 初始化值的最快方法

java - 如何从保存为字符串的文件路径中获取特定部分 - Android/Java

android - Quickblox:与离线用户进行视频通话的策略是什么