我正在编写 JavaMail 客户端(在 GlassFish 4 服务器中运行),但无法让我的 Zimbra ZCS 服务器接受 SMTP 会话。我总是在zimbra日志:
Dec 19 04:51:05 mail postfix/submission/smtpd[24088]: NOQUEUE: reject: RCPT from c-24-6-111-204.hsd1.ca.comcast.net[24.6.111.204]: 554 5.7.1 <c-24-6-111-204.hsd1.ca.comcast.net[24.6.111.204]>: Client host rejected: Access denied; from=<[email protected]> to=<info@ myserver.com> proto=ESMTP helo=<192.168.88.12>
我已将本地系统的 IP 地址(私有和公共)添加到 postfix 配置中,如下所示:
$ postconf mynetworks
mynetworks = 127.0.0.0/8 [::1]/128 10.1.0.0/16 64.71.111.112/28 24.6.111.204/32 192.168.88.0/24
子网 64.71.111.112 包含服务器的公网 IP 地址。24.6.111.204 地址是我的 NAT 路由器的公网 IPv4 地址。
在我的 JavaMail 客户端上我设置了以下属性:
mail.smtp.port = 587
mail.smtp.auth = true
mail.smtp.starttls.enable = true
mail.user = '[email protected]'
mail.smtp.password = 'thepassword'
我真的陷入困境——有人可以建议一份要检查的事项清单以使其正常工作吗?
答案1
事实证明,问题出在我的 Glassfish 属性设置中。我的属性名称为mail.starttls.enable而实际上应该是这样的(如上图所示)mail.smtp.starttls.enable. 再举一个例子来说明如何因为没有看到应该看到的东西而浪费大量时间。
我相信服务器端的协议栈没有记录比“拒绝访问”消息更有用的任何内容,因为它没有理由相信客户端不打算使用 TLS 会话。
我不会删除这篇文章,而是会保留它,以防将来有人觉得它有用。我找不到关于如何将 Glassfish 4、JavaMail 和 Zimbra ZCS 组合在一起工作的良好指南或教程。