浏览器通过 PAC 文件工作。邮件客户端却无法连接到 IMAP。这并不矛盾:浏览器和邮件客户端通过不同的配置接口请求不同的服务。

IMAP 不是普通的 HTTP 请求。客户端需要一条能够承载其邮件协议的路径,例如受支持的 HTTP CONNECT 隧道或 SOCKS 连接。代理还必须允许目标地址和端口。

检查邮件库的实际支持

当前 Angus Mail 的 IMAP 提供程序记录了 HTTP 代理的主机、端口和账户属性,以及与 SOCKS 相关的设置。请使用已安装提供程序和协议的文档。所谓 JavaMail 永远不能使用 HTTP 代理的旧说法,描述的是另一条能力边界。

看似合理的属性名并不够。安全 IMAP 协议可能需要对应的属性前缀,而另一个 Java 客户端使用的任意 HTTP 代理属性未必会被邮件提供程序读取。

PAC 发现是另一项功能

浏览器的 PAC URL 是配置数据,而不是 IMAP 服务器或转发代理的地址。应为邮件目标确定受支持的代理路由,而不是用该 URL 替换邮件主机。

然后把两类账户分开。代理凭据授权的是中间人;邮件账户授权的是对邮箱的访问。正确的邮箱密码无法修复被拒绝的 CONNECT 请求。

通过受支持的隧道保持邮件 TLS 验证开启。如果获授权的代理不允许所需的邮件端口,请申请获批的访问安排。更改端口标签或代理方案,都无法让不兼容或被拒绝的连接变成被允许的连接。

相关文章