![Exchange 2003 SMTP SSL 和各种电子邮件客户端](https://linux22.com/image/553588/Exchange%202003%20SMTP%20SSL%20%E5%92%8C%E5%90%84%E7%A7%8D%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%AE%A2%E6%88%B7%E7%AB%AF.png)
此 Exchange 2003 服务器位于防火墙后面,其中虚拟 SMTP 服务器监听端口 465,并将 Comodo 的 SSL 证书附加到虚拟服务器。但是,当尝试从 Apple Mail.app 4.x 和 Outlook 2011 for Mac 发送时,它始终无法完成连接(超时)。但奇怪的是,同样的设置却适用于 Thunderbird。我的问题是:
- 如果证书的友好名称与内部主机名不同,这有关系吗?该机器有 2 个主机名:外部和内部。官方 SSL 使用外部名称。
- 当使用与内部同名的自签名证书时,我仍然无法从 Mail.app 和 Exchange 客户端发送,但可以使用 Thunderbird 发送。
答案1
我认为您的问题在于使用非标准端口。
RFC 4409,RFC 3207, 和RFC 2476可能会对你有帮助。
几乎所有的邮件路由(至少我处理过的)都是在端口 25 上使用标准 SMTP 上的 TLS 完成的,并且除非您指示,否则客户端可能不会在另一个端口上发送。
还有一些信息来自本网站:
端口 465 出现在 1996 年非标准标准的附录 A 中SSL 协议版本 3.0作为“带 SSL 的简单邮件传输协议”。不幸的是,它没有注册为 SMTP,而是注册为 URD - Cisco 的“SSM 的 URL 交汇目录”。推荐的方法(至少对于身份验证)是在提交端口 587 上使用 START TLS 加密。
上述引文中的链接已失效,但是这个似乎有效。
另一个信息丰富的论坛链接这里。
答案2
我将端口从 465 改为 587,发送成功。我猜想发生的原因是 Apple 的 Mail.app 和 Microsoft 的 Outlook 2011 (Mac) 客户端尝试连接到端口 465,但没有发出 Exchange SMTP 服务器所需的 STARTTLS 命令,但当端口切换到 587 时,客户端似乎“知道”它们必须发出 STARTTLS 命令。