Property" mail.imap.starttls.enable"," true"没有工作

时间:2017-01-14 11:54:24

标签: java email smtp imap

在Oracl sslnotes中说,应该使用mail.imap.starttls.enable或mail.smtp.starttls.enable启用STARTTLS命令,以及#34; true"。 "设置后,如果服务器支持STARTTLS命令,它将是 在建立连接之后和发送任何登录之前使用 信息&#34 ;.所以,我按照建议设置了这个:

props.setProperty("mail.imap.starttls.enable", "true");
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.auth", "true");
props.setProperty("mail.imap.host", "imap.mail.ru");

Session session = Session.getInstance(props, new javax.mail.Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(login + "@" + server, passwd);
    }
});

session.setDebug( true);
Store store = session.getStore();

store.connect();

但是这里是对话:

* OK Welcome
A0 CAPABILITY
* CAPABILITY IMAP4rev1 ID XLIST UIDPLUS UNSELECT MOVE STARTTLS LIST-STATUS LOGINDISABLED
A0 OK CAPABILITY completed
A1 LOGIN tester@mail.ru tester   <==== this string is edited
A1 NO [PRIVACYREQUIRED] Command disabled. Please use STARTTLS first.

据我所知,没有STARTTLS命令通过connect函数发送(尽管该命令应该发送&#34;在发送连接之后和发送任何登录信息之前#34;,如Oracle手册中所承诺的那样)。那么我该怎么做才能让代码发送这个STARTTLS?

1 个答案:

答案 0 :(得分:0)

通过下载最新的javax.mail.jar解决。谢谢大家。