繁体   English   中英

您必须先发出 STARTTLS 命令

[英]You must issue STARTTLS command first

我正在连接到 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();

问题在这里:

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

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

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

@npinti 提供的教程链接假定您将使用javax.mail 如果您想以艰难的方式完成, 本教程将向您展示如何使用 SSL 套接字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM