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 に答える