ProtocolServer server = null;
try {
server = createServer(createProtocol(new ProtocolHandler[0]), address, Encryption.createStartTls(BogusSslContextFactory.getServerContext()));
server.bind();
SMTPSClient client = createClient();
client.connect(address.getAddress().getHostAddress(), address.getPort());
assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));
client.sendCommand("EHLO localhost");
assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));
boolean startTLSAnnounced = false;
for (String reply: client.getReplyStrings()) {
if (reply.toUpperCase(Locale.UK).endsWith("STARTTLS")) {
startTLSAnnounced = true;
break;
}
}
assertTrue(startTLSAnnounced);
assertTrue(client.execTLS());
// TODO: Add back once commons-net 3.1.0 was released.
// See: NET-421
//
//client.quit();
//assertTrue("Reply="+ client.getReplyString(), SMTPReply.isPositiveCompletion(client.getReplyCode()));
client.disconnect();
} finally {
if (server != null) {
server.unbind();