[英]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.