如何使用 Java 客户端通过 SMTP 和 SSL 发送电子邮件?
我需要使用 java 客户端通过 smtp 和 ssl 发送电子邮件。我不知道该怎么做。
- 如果我在 Windows 计算机上安装了服务器证书,如何使用它?
- 如果我希望它在非 Windows 计算机上运行,我是否需要以不同的方式获取证书?
顺便说一句:如果我使用的 SMTP 服务器使用 SSL,我能否确定它将使用 SSL 将邮件发送给收件人?
I need to send email over smtp with ssl using java client. I'm not sure how to do that.
- If I have my server certificate installed on my Windows machine, how do I use it?
- If I want it to work on a non-Windows machine, do I need to get the certificates in a different way?
BTW: If the SMTP server that I use is using SSL, can I be sure that it will send the mail to the recipient using SSL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请查看本教程,其中详细介绍了如何使用 JavaMail 和 JSSE(安全套接字扩展)和证书安装。
如果您不想使用 JavaMail,您可以通过 TCP 套接字自行实现 SMTP 协议。 请参见此处。但是您将重新实现大量工作,这些工作乍一看似乎微不足道,但会出现许多边缘情况和复杂性。我强烈建议使用 API 来完成这项工作。
Take a look at this tutorial, which details using JavaMail with JSSE (the secure socket extension) and certificate installation.
If you don't want to use JavaMail, you can implement the SMTP protocol yourself over TCP sockets. See here. But you'll be reimplementing a lot of work which at first sight seems trivial, but will have numerous edge cases and complexities. I would strongly recommend using the APIs for the job.
您可能需要做的一件事是告诉您的Java客户端信任服务器的证书。
您与 SMTP 服务器的 SSL 连接是纯点对点的。绝对不能保证它将通过 SSL 连接到其他客户端和服务器(除非您控制服务器)。
The one thing you may have to do is to tell your Java client to trust the server's certificate.
Your SSL connection to the SMTP server is puerly point-to-point. There's absolutely no guarantee that it will connect to other clients and servers over SSL (unless you control the server).
您也可以使用 MailReporter。
它支持 SSL 和 TLS!
http://magithou。 com/tips-a-tricks/42-setup-e-mail-accounts/81-ssl-support.htm
You can use MailReporter also.
It supports SSL and TLS!
http://magithou.com/tips-a-tricks/42-setup-e-mail-accounts/81-ssl-support.htm
希望这将帮助您设置 Java 客户端代码信任的服务器证书。
请使用反斜杠而不是上面的正斜杠(Windows 人员在路径标识符中混淆了自己,哈哈)。
参考:
http://vafer.org/blog/20061010073725/
Hope this will help you in setting up the server certificate to be trusted by your java client code.
Please use backslashes instead of above forwards slashes (windows guys have confused themselves in path identifiers LOL).
Reference:
http://vafer.org/blog/20061010073725/