Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的hotmail登录错误(IDE:Netbeans)_Java_Netbeans_Runtime Error_Email - Fatal编程技术网

java中的hotmail登录错误(IDE:Netbeans)

java中的hotmail登录错误(IDE:Netbeans),java,netbeans,runtime-error,email,Java,Netbeans,Runtime Error,Email,我正在创建一个用java发送电子邮件的应用程序,一切都设置好了,工作正常。但错误是当我尝试登录Hotmail帐户时,它显示了错误的电子邮件和密码,我在catch block中给出了错误的电子邮件和密码。 但当我第一次登录雅虎或gmail时,它会登录hotmail,之后我可以登录hotmail,但我不能先登录hotmail,为什么?!代码如下 这就解释了为什么你可以在登录gmail或yahoo后再登录你的hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是Sess

我正在创建一个用java发送电子邮件的应用程序,一切都设置好了,工作正常。但错误是当我尝试登录Hotmail帐户时,它显示了错误的电子邮件和密码,我在catch block中给出了错误的电子邮件和密码。 但当我第一次登录雅虎或gmail时,它会登录hotmail,之后我可以登录hotmail,但我不能先登录hotmail,为什么?!代码如下

这就解释了为什么你可以在登录gmail或yahoo后再登录你的hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是SessiongetDefaultInstance,而不是SessiongetInstance:

Session.getDefaultInstance方法第一次创建一个新会话 调用它的时间,使用传递的属性。后来的 调用将返回原始会话,并忽略您创建的任何属性 过去。如果要创建具有不同会话的不同会话 属性,Session.getDefaultInstance不会这样做。[…]始终使用Session.getInstance来避免此问题

但是,这并不能解释为什么您不能登录到hotmail帐户,但您应该发布异常堆栈跟踪,以便我们可以帮助您

更新:

基于此堆栈跟踪:

com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
这意味着您必须根据Hotmail要求将mail.smtp.starttls.enable属性设置为true:

在下选择TLS以使用以下类型的加密连接 发送服务器SMTP,然后单击“确定”。请注意传出服务器 SMTP框应设置为端口25。如果端口25在中被阻塞 通过网络或ISP,您可以将SMTP端口设置为587

注:摘自

尝试登录到Hotmail帐户时,您只应在代码中添加以下行:

props.put("mail.smtp.starttls.enable", "true");
另外,不要忘记按照我上面的建议,将Session.getDefaultInstance替换为Session.getInstance。

这就解释了为什么在登录gmail或yahoo后,您可以登录hotmail帐户。实际上,您登录的帐户与第一次尝试时登录的帐户相同。问题是您使用的是SessiongetDefaultInstance,而不是SessiongetInstance:

Session.getDefaultInstance方法第一次创建一个新会话 调用它的时间,使用传递的属性。后来的 调用将返回原始会话,并忽略您创建的任何属性 过去。如果要创建具有不同会话的不同会话 属性,Session.getDefaultInstance不会这样做。[…]始终使用Session.getInstance来避免此问题

但是,这并不能解释为什么您不能登录到hotmail帐户,但您应该发布异常堆栈跟踪,以便我们可以帮助您

更新:

基于此堆栈跟踪:

com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
这意味着您必须根据Hotmail要求将mail.smtp.starttls.enable属性设置为true:

在下选择TLS以使用以下类型的加密连接 发送服务器SMTP,然后单击“确定”。请注意传出服务器 SMTP框应设置为端口25。如果端口25在中被阻塞 通过网络或ISP,您可以将SMTP端口设置为587

注:摘自

尝试登录到Hotmail帐户时,您只应在代码中添加以下行:

props.put("mail.smtp.starttls.enable", "true");

另外,不要忘记按照我上面的建议,将Session.getDefaultInstance替换为Session.getInstance。

能否添加异常的堆栈跟踪?您假设您的异常是由身份验证问题引起的,但可能不是。我还建议您尝试使用端口578而不是25,因为最后一个端口可能会被网络防火墙或您的ISP阻止。像578或25这样的端口可以工作,但不会在首次登录时工作!听起来很奇怪。请添加异常的堆栈跟踪,以便更多的人可以帮助您。当我添加异常的堆栈跟踪时,它会显示以下错误。。!com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令您可以添加异常的堆栈跟踪吗?您假设您的异常是由身份验证问题引起的,但可能不是。我还建议您尝试使用端口578而不是25,因为最后一个端口可能会被网络防火墙或您的ISP阻止。像578或25这样的端口可以工作,但不会在首次登录时工作!听起来很奇怪。请添加异常的堆栈跟踪,以便更多的人可以帮助您。当我添加异常的堆栈跟踪时,它会显示以下错误。。!com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须发出STARTTLS命令firstexception堆栈跟踪为:com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须发出STARTTLS命令firstGreat!您很好:异常堆栈跟踪是:com.sun.mail.SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令太棒了!你是威康: