2
據說在Oracl sslnotes中,應該使用mail.imap.starttls.enable或mail.smtp.starttls來啓用STARTTLS命令。啓用,以「真實」。 「設置時,如果服務器支持STARTTLS命令,則在建立連接之後以及在發送任何登錄 信息之前將使用 」。所以,我設置的建議: 屬性「mail.imap.starttls.enable」,「true」不起作用
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 [email protected] tester <==== this string is edited
A1 NO [PRIVACYREQUIRED] Command disabled. Please use STARTTLS first.
據我所知沒有STARTTLS命令通過連接功能發送(儘管該命令應使連接後,可以發送」並在發送任何登錄信息之前「,如Oracle手冊中所承諾的)。那麼我該怎麼做才能讓代碼發送這個STARTTLS?
你可以嘗試用true來指定'mail.imap.starttls.required'嗎? –