0

我需要使用 java 客户端通过 ssl 通过 smtp 发送电子邮件。我不知道该怎么做。

  1. 如果我在我的 Windows 机器上安装了服务器证书,我该如何使用它?
  2. 如果我希望它在非 Windows 机器上工作,我是否需要以不同的方式获取证书?

顺便说一句:如果我使用的 SMTP 服务器使用 SSL,我可以确定它会使用 SSL 将邮件发送给收件人吗?

4

4 回答 4

1

查看本教程,其中详细介绍了将 JavaMail 与 JSSE(安全套接字扩展)和证书安装一起使用。

如果您不想使用 JavaMail,您可以通过 TCP 套接字自己实现 SMTP 协议。见这里。但是您将重新实现许多乍一看似乎微不足道的工作,但会有许多极端情况和复杂性。我强烈建议使用 API 来完成这项工作。

于 2009-08-17T11:34:48.360 回答
0

希望这将帮助您设置服务器证书以使您的 java 客户端代码信任。

STORE=/path/to/JRE/cacerts
keytool -import -trustcacerts -keystore $STORE -storepass changeit -noprompt -file mymailserver.pem -alias mymailserver

请使用反斜杠而不是上面的正斜杠(Windows 的家伙在路径标识符 LOL 中混淆了自己)。

参考:http: //vafer.org/blog/20061010073725/

于 2012-05-18T09:54:22.593 回答
0
  1. 要简单地充当 SSL 服务器的客户端,您不需要自己的证书。
  2. 在非 Windows 机器上也没有什么不同,尤其是在使用 Java 时。

您可能需要做的一件事是告诉您的 Java 客户端信任服务器的证书。

您与 SMTP 服务器的 SSL 连接完全是点对点的。绝对不能保证它会通过 SSL 连接到其他客户端和服务器(除非您控制服务器)。

于 2009-08-17T12:04:02.217 回答
0

您也可以使用 MailReporter。它支持 SSL 和 TLS! http://magithou.com/tips-a-tricks/42-setup-e-mail-accounts/81-ssl-support.htm

于 2010-05-23T07:46:15.600 回答