您必须先发出STARTTLS命令

时间:2015-10-12 07:15:55

标签: java

我连接到smtp.live.com但是当我运行程序并插入电子邮件凭据时,它首先要求使用starttls命令以避免此异常。

try { 
    Socket socket1= new Socket("smtp.live.com",587); 
    again: 
        while(true) { 
            Scanner s= new Scanner(System.in); 
            String from=""; String to=""; String cc=""; String bcc=""; 
            mail[m_count]=new Message();

1 个答案:

答案 0 :(得分:1)

问题在于:

 Socket socket1 = new Socket("smtp.live.com", 587); 

如果端口号为25,那就没问题了。问题是您尝试使用启用SSL的SMTP,这需要您使用SSL套接字。但这有点复杂......

但是,我认为这里有一个更大的问题。从Java发送/接收电子邮件的正常方式是使用javax.mail API。但是,如果要打开邮件服务器的套接字(或SSL套接字),则意味着您打算实现SMTP规范的客户端。除非你有充分的理由这样做......这听起来像是浪费精力。

@npinti提供的tutorial link假定您将使用javax.mail。如果你 想要以艰难的方式去做,this tutorial向您展示了如何使用SSL套接字。