MailConnectException:无法连接到主机,端口-可以进行的POP3请求数量限制?

时间:2019-03-18 06:40:46

标签: java javamail

我在弄乱JavaMail API并试图同时快速打开多个会话(〜50个)(即尝试一次登录到许多不同的邮件帐户)后不久就遇到MailConnectException和SocketTimeoutException。

每次登录请求之间大约3-5秒的时间登录到一个帐户时,我从未遇到过这些错误。

在给定的时间内针对IMAP,POP3和SMTP请求可以进行的握手次数上是否有Yahoo,Google和其他邮件提供商的配额?如果是这样,有什么办法可以解决这个限制?

还是完全有其他原因可能导致MailConnectException?

1 个答案:

答案 0 :(得分:0)

提供商通常至少实现三层服务保护:

  • 网络层;大多数将实施针对SYN Floods的保护。
  • 身份验证;大多数将实施保护措施以防止身份验证滥用。认证的频率/速率可能只是这里的冰山一角。信誉,身份验证的多样性,用户标识到IP的模式以及其他因素可能在auth保护中更为普遍。
  • 服务/协议层;大多数将实施针对特定协议的保护措施,以防止违反rfc,大量带宽消耗以及滥用/垃圾邮件之类的问题。

避免它们的最好方法是按照已发布的最佳实践(例如rfc2683)进行编码,并且您似乎对执行操作有明确的理解目的。例如:

  • POP3确实并不需要50个并发连接
  • 具有50个并发连接的SMTP /提交看上去很像垃圾邮件发送者
  • 如果客户端希望执行每个文件夹会话并且有50个文件夹,那么
  • 具有50个并发连接的IMAP可能是 可以理解的...但是即使如此,提供商也可能选择不支持此使用限制并限制并发连接。