Bau*_*han 6 java email ssl smtp
我正在从java代码发送电子邮件.我的配置是
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "****");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
Run Code Online (Sandbox Code Playgroud)
发出STARTTLS命令后,任何使用STARTTLS的协议都处于SSL模式
但我的调试输出显示:DEBUG SMTP:尝试连接到主机"****",端口587,isSSL false.
所以我的问题听起来像
虽然我的调试输出中的isSSL = false,这样的配置是否真的安全并且SSL像EJP一样使用?
UPDATE
连接代码
Transport transport = session.getTransport("smtp");
transport.connect("host", 587,"username", "password");
Run Code Online (Sandbox Code Playgroud)
当我写的时候 Transport transport = session.getTransport("smtps")我得到了
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
Run Code Online (Sandbox Code Playgroud)
您仍然应该使用“smtp”传输,因为这是协议(smtps 不是已知协议)。SSL 用于连接。我自己曾将“javax.mail”与 Google 结合使用。Google 仅允许 SSL。所以我只能回答是;它有效而且安全。我应该补充一点,属性“mail.smtp.starttls.enable”有点令人困惑。startsll 属性指的是正在发出的命令,但它应该被命名为:“mail.smtp.secure.enable”。