2

在设置我的会话时,我正在设置 starttls.enable 和 .required 属性,但是当连接发生时,根据文档它应该会失败:

mail.smtp.starttls.enable boolean 如果为 true,则在发出任何登录命令之前启用使用 STARTTLS 命令(如果服务器支持)将连接切换到受 TLS 保护的连接。请注意,必须配置适当的信任库,以便客户端信任服务器的证书。默认为 false。” http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.html

props = new Properties();
props.put("mail.smtps.host", MAILSERV);
props.put("mail.smtps.socketFactory.port", 465);
props.put("mail.smtps.auth", "true");
props.put("mail.smtps.port", 465);
props.put("mail.smtps.socketFactory.fallback", "false");
props.put("mail.smtps.socketFactory.class","utils.DummySSLSocketFactory");
props.put("mail.smtps.quitwait", "false");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.required", "true");
Session session = Session.getInstance(props, authenticator);  


transport = session.getTransport("smtps");
transport.connect(mailServer, port, username, password);
transport.sendMessage(message, message.getAllRecipients());

那么我做错了什么让我在服务器不支持的情况下使用 Starttls?

4

1 回答 1

3

我在使用 STARTTLS 时遇到的问题是由于我获得了安全传输造成的:

transport = session.getTransport("smtps");

将其更改为“smtp”后,我能够使用 STARTTLS。

于 2013-03-28T00:54:52.183 回答